美文网首页
Rails方法之——.try

Rails方法之——.try

作者: 小小修行者 | 来源:发表于2018-09-27 16:36 被阅读0次
    create_table "bank_cards", force: :cascade do |t|
        t.string "number"
        t.string "status"
        t.string "bank_name"
        t.integer "user_id"
        t.datetime "created_at", null: false
        t.datetime "updated_at", null: false
      end
    
      create_table "users", force: :cascade do |t|
        t.string "name"
        t.integer "age"
        t.string "phone"
        t.string "status"
        t.datetime "created_at", null: false
        t.datetime "updated_at", null: false
      end
    
    class User < ApplicationRecord
      has_many :bank_cards
    end
    
    class BankCard < ApplicationRecord
      belongs_to :user
    end
    

    以上图为例,我们在页面中需要进行如下操作:

    <% @users.each do |user| %>
      ...
        <td><%= user.bank_cards.name %></td>
      ...
    <% end %>
    

    当bank_cards没有数据,为nil时,页面报错。这里我们就可以用.try方法。可以改为:

    <% @users.each do |user| %>
      ...
        <td><%= user.bank_cards.try :name %></td>
      ...
    <% end %>
    

    之后,页面不会报错,该部分为空值nil,页面中不予显示。
    风险提示:这样做会隐藏方法本身的错误,如此例中,bank_cards方法如果定义错误,也会被隐藏,页面会正常显示。

    相关文章

      网友评论

          本文标题:Rails方法之——.try

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