如果找不到对象的Rails在视图中移动

时间:2013-03-06 16:30:50

标签: ruby-on-rails ruby-on-rails-3

我在erb模板中有以下声明:

<% if @serial.hacks.find(@serial.id) %>
  <h1><%= @serial.hacks.find(@serial.id).hack_name %><h1> 
<% end %>

我正在尝试显示hack_name(如果存在),但是,如果它不存在则阻止错误。 Serial和Hack模型分享了很多关系。

当我加载一个没有Seri​​al和Hack之间关联的页面时,我得到以下错误,我试图阻止:

Couldn't find Hack with id=2 [WHERE "hacktions"."serial_id" = 2]

1 个答案:

答案 0 :(得分:1)

<% if hack = @serial.hacks.find_by_id(@serial.id) %>
  <h1><%= hack.hack_name %><h1> 
<% end %>

但你应该使用演示者。

顺便说一下,{{1>} serial hacksid一样, 真的 很奇怪。你真的想要什么?


编辑我想你正在寻找:

<% @serial.hacks.each do |hack| %>
  <h1><%= hack.hack_name %><h1> 
<% end %>