美文网首页
Rails一对多增删改查之——#index,及路由说明

Rails一对多增删改查之——#index,及路由说明

作者: 小小修行者 | 来源:发表于2018-09-26 17:32 被阅读0次

需求:
我们需要两个model,一个是用户(字段1,字段2,...),一个是银行卡(字段1,字段2,...)。关联两个model,使得每一个用户都能查看、新建、修改、删除他的银行卡。
第一步,建立用户model和其中的字段。
这里不赘述了 ,请翻看之前的文章。
第二步,新建model:bank_card,让它属于用户。
新建bank_card.rb

class BankCard < ApplicationRecord
  belongs_to :user
end

user.rb中也做关联,用户拥有多张银行卡。

class User < ApplicationRecord
  has_many :bank_cards
end

第三步,建立bank_cards数据表。
rails g migration create_bank_cards

class CreateBankCards < ActiveRecord::Migration[5.2]
  def change
    create_table :bank_cards do |t|
      t.string :number
      t.string :status
      t.string :bank_name
      t.integer :user_id
      t.timestamps
    end
  end
end

第四步,建立路径。
在routes.rb中插入resources :bank_cards
第五步,建立bank_cards_controller.rb

class BankCardsController < ApplicationController
  def index
    @bank_cards = BankCard.includes(:user)
  end
end

查出卡和相关的用户。
第五步,建立bank_cards/index.html.erb

<h2>银行卡#index</h2>
<table>
  <tr>
    <td>序号</td>
    <td>卡号</td>
    <td>银行名称</td>
    <td>用户名称</td>
    <td>状态</td>
  </tr>
  <% @bank_cards.each_with_index do |card, index| %>
    <tr>
      <td><%= index + 1 %></td>
      <td><%= card.number %></td>
      <td><%= card.bank_name %></td>
      <td><%= card.user.name %></td>
      <td><%= BankCard::STATUS[card.status] %></td>
      <td><%= link_to '查看', card %> | </td>
      <td><%= link_to '修改', edit_bank_card_path(card) %> | </td>
      <td><%= link_to '删除', card, method: :delete %> | </td>
    </tr>
  <% end %>
  <tr>
    <td><%= link_to '增加银行卡', new_bank_card_path %></td>
  </tr>
</table>

这样,可以正常显示银行卡了 ,我们的index页面就做好了。

路由说明

这里的“查看”和“删除”按钮为

<%= link_to '查看', card %> 
<%= link_to '删除', card, method: :delete %>

其中,card为id,而非路由。这里的card为简写,意思是:id=>card.id
完整的路径应写成:

<%= link_to '查看', bank_card_path(:id=>card.id) %> 
<%= link_to '删除', bank_card_path(:id=>card.id), method: :delete %>

其中,edit的路径为

<%= link_to '修改', edit_bank_card_path(card) %>```
也是简写,完整写法为:

<%= link_to '修改', edit_bank_card_path(:id=>card.id) %>```

相关文章

网友评论

      本文标题:Rails一对多增删改查之——#index,及路由说明

      本文链接:https://www.haomeiwen.com/subject/nfkjoftx.html