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

<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) %>```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天起,写点关于Ruby on rails的技术文章。数据的增(create)删(delete)改(update)...
    小小修行者阅读 551评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,287评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,937评论 2 59
  • 起床刷牙要对着早晨的太阳朦胧的微光朦胧的晨雾一点点大地微微颤动 你看到了吗光线照在脸上在高高的屋顶对着太阳刷牙远处...
    葺宝阅读 509评论 0 1
  • 之前B1平台的平台币ONE,我从8毛开始买,一路买到8分钱。对,你没有看错,5天时间从8毛跌到了8分钱。跌了90%...
    很二的郭大爷阅读 330评论 0 1