2017-05-14 8 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'のSubjectを見つけることができませんでした。この場合の問題は何ですか?私がしたいことは、すべてのテーマをハイパーリンクとして一覧表示することです。id =:all - Ruby on Rails

ありがとうございました。

+1

'find(:all)'は、* years *でRailsを使う正しい方法ではありませんでした。どこからRailsを学んでいるのかは、そのリソースを放棄するべきです。 – meagar

答えて

1

問題は古くなったコードを使用していることです。 これらの2つのいずれかに置き換えます。

Subject.all.each do ... 

または

Subject.find_each do ... 

エラーの説明はfindが自動的にidで検索し:allが有効idではありませんので、それは何と昇給や例外を見つけることができないということです。

+1

'find(:all)'はRaysの年前に有効だったと指摘する価値があります。さらに、彼は 'link_to'メソッドに引数を渡すために古いイディオムを使用しています。彼が旧式のチュートリアルに従っているような気がします。 – spickermann

+0

ああ、ありがとう!できます! @spickermannおそらく、あなたが正しいと思うので、チュートリアルは古くなっています。最新のチュートリアルはありますか? – pjdev

+0

Googleの「rails hartl tutorial」は、標準的なチュートリアルであり、多少は間違ってはいけません。 – Iceman