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

需求:
我们需要两个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

银行卡#index

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

这样,可以正常显示银行卡了 ,我们的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,及路由说明)