2013-03-06 52 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

相關問題