In the beginning Ruby: From Novice to Professional 一书第 13 章重点介绍了撰写本文时最流行的框架;当然,Rails 具有突出的特点。
用于介绍这些概念的项目有一个部分,它通过向脚手架添加 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"}
有没有其他人看过这本书,发现它有点过时并知道解决这个问题的方法,或者至少对我做错了什么有一个大致的了解?