Ruby on rails Rails空关系没有方法错误
我只是犯了个错误 我得到了一个有很多关联的,但在填写表单时,我将字段留空,ir返回了一个错误:Ruby on rails Rails空关系没有方法错误,ruby-on-rails,activerecord,has-many,belongs-to,Ruby On Rails,Activerecord,Has Many,Belongs To,我只是犯了个错误 我得到了一个有很多关联的,但在填写表单时,我将字段留空,ir返回了一个错误: Showing /home/techmago/namebook/app/views/names/index.html.erb where line #16 raised: undefined method `nome' for nil:NilClass Extracted source (around line #16): 13: <% @names.each do |name| %&g
Showing /home/techmago/namebook/app/views/names/index.html.erb where line #16 raised:
undefined method `nome' for nil:NilClass
Extracted source (around line #16):
13: <% @names.each do |name| %>
14: <tr>
15: <td><%= name.nome %></td>
16: <td><%= name.family.nome %></td>
17: <td><%= name.race.nome %></td>
18: <td><%= h(name.descr).gsub(/\n/, '<br/>').html_safe %></td>
19: <td>
显示/home/techmago/namebook/app/views/names/index.html.erb,其中第16行出现:
nil:NilClass的未定义方法“nome”
提取的源(第16行附近):
13:
14:
15:
16:
17:
18:
19:
我确信那是因为其中一个名字.family.nome是nill。我希望这种情况能够被接受
型号:
class Name < ActiveRecord::Base
belongs_to :family
belongs_to :race
has_and_belongs_to_many :books
attr_accessible :descr, :family_id, :nome, :race_id, :book_ids
validates :nome, presence: true
end
class Family < ActiveRecord::Base
has_many :names
has_and_belongs_to_many :books
has_and_belongs_to_many :races
attr_accessible :descr, :nome, :book_ids, :race_ids
validates :nome, uniqueness: true, presence: true
end
类名
所以我们知道的是,名称
,尤其是,没有关联的族
对象。也就是说,name.family
返回nil
,如错误所示,它不响应nome
。所以,如果你想要的是这件事被优雅地处理。。。i、 e.不要出错,不要显示任何内容。在这种情况下,您可以执行以下操作:
<%= name.family.try(:nome) %>
如果name.family
为nil
,则try
块将返回nil
,然后erb块基本上将返回空字符串
否则,您需要弄清楚为什么循环中的一个
名称
没有系列
,然后从那里开始。就是这样!塔克斯!