2017-05-14 152 views
0
<ul id = "subjects"> 
    <% Subject.find(:all).each do |c| %> 
    <li><%= link_to c.name, :action => "show_subjects", :id => c.id %></li> 
    <% end %> 
</ul> 

我在我的list.html.erb文件中有一段代碼。它引發了一個例外:'找不到'id'= all'的主體。這種情況下有什麼問題?我想要做的是將所有主題列爲超鏈接。找不到id =:all - Ruby on Rails

感謝您的幫助。

+1

'find(:all)'還沒有在*年*中使用Rails的正確方法。無論你從哪裏學習Rails,你都應該放棄這個資源。 – meagar

回答

1

問題是你使用的代碼是古代的。 用這兩個中的任何一個替換它。

Subject.all.each do ... 

Subject.find_each do ... 

解釋錯誤是由find ID自動搜索和:all不是有效id,所以它無法找到任何東西,引發和異常。

+1

可能值得指出的是'find(:all)'在Rails年前是有效的。此外,他使用舊成語將參數傳遞給'link_to'方法。在我看來,他似乎在遵循過時的教程。 – spickermann

+0

哦,非常感謝!有用! @spickermann可能你是對的,該教程已過時。你有任何最新的教程推薦? – pjdev

+0

谷歌'軌道hartl教程',這是規範教程有點,至少不能出錯。 – Iceman