『Ruby: From Novice to Professional』の第 13 章では、執筆時点で最も人気があったフレームワークに焦点を当てています。もちろんRailsが目立っています。
概念を紹介するために使用されるプロジェクトには、scaffold に view_all メソッドを追加することによって rails コマンドで作成された汎用アプリケーションを拡張するセクションがあります。
def view_all
@Entries = Entry.all(:order => 'created_at DESC')
end
また、config/routes.rb ファイルに以下が含まれていることも指摘しています。
map.resources :entries
そして更新する
map.resources :entries, :collection => { :view_all => :get }
問題は、私の config/routes.rb ファイルがそのように見えないことです。部分がなく、map.
次のように見えます
resources :entries
:collection...
とにかくその部分を追加しました。
次に、本は app/views/entries/view_all.html.erb に以下を追加するように言っています
<% @entries.each do |entry| %>
<h1><%= entry.title %></h1>
<p><%= entry.content %></p>
<p><em>Posted at <%= entry.created_at %></em></p>
<% end %>
<%= link_to 'Add New entry', new_entry_path %>
これをすべて実行しましたが、「アプリケーション」を実行しようとするとエラーが発生します
Couldn't find Entry with id=view_all
パラメータを次のように
{"collection"=>{"view_all"=>:get},
"id"=>"view_all"}
他の誰かが本を見て、それが少し古くなっていることを見て、これに対する修正を知っているか、少なくとも私が間違っていることを一般的に理解していますか?