检查模型的属性是否存在

时间:2014-04-02 05:17:55

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

在Rails中,当我尝试评估用户是否为其计算机输入了品牌时,我收到了错误消息:

if @user.computer.brand.empty?

NoMethodError (undefined method 'brand' for nil:NilClass):

如果用户尚未进入计算机,则会返回brand上没有方法nil class的错误。检查用户是否同时为该计算机输入computerbrand的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

尝试try

@user.computer.try(:brand)

如果nilcomputercomputer.brand,则会返回nil,否则会返回指定的brand

答案 1 :(得分:0)

if @user.computer && @user.computer.brand.present?

答案 2 :(得分:0)

if @user.computer.present? && @user.computer.brand.present? 

您也可以使用! nil?代替现在。

请参阅this post - 非常有用