0

『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"}

他の誰かが本を見て、それが少し古くなっていることを見て、これに対する修正を知っているか、少なくとも私が間違っていることを一般的に理解していますか?

4

1 に答える 1