2013-03-06 55 views
0

我在ERB模板下面的语句:Rails的对象不能被发现的举动在视图

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

我想,如果它的存在是为了显示hack_name,但是,如果防止错误它不存在。 Serial和Hack模式有着许多直通关系。

当我加载不具备串行和黑客之间的关联,我得到以下错误,我试图阻止网页:

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

您是否正确地寻找黑客其中id = serial_id? – Swards 2013-03-06 16:37:54

回答

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

但是,你应该使用主持人。

顺便说一句,这是真的怪异有serialhacks与它的id。你真正想要的是什么?


编辑我猜你正在寻找:

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

我同意@apneadiving,这段代码不应该在视图中。 – 2013-03-06 16:40:02

+0

@apneadiving如果一个序列与黑客相关联,我想要显示的字段hack_name(位于黑客模型中)。如果没有,则跳过。但是,当我添加一个新的Serial并将其与hack关联时,您的代码正在工作,hack_name未显示。 – JohnGalt 2013-03-06 18:53:40

+0

刚刚编辑我的asnwer – apneadiving 2013-03-06 19:15:19

相关问题