【发布时间】:2011-04-30 14:57:56
【问题描述】:
我在使用 RESTful 路由和单一资源时遇到问题,最初我在帐户资源的显示视图中有此代码。
<%= link_to book.title, book_path(:search => book.title) %>
它运行良好,然后我将帐户更改为单一资源,例如
来自
map.resources :accounts
到
map.resource :account
现在我得到了错误...
book_url failed to generate from {:search=>"Dracula", :controller=>"books", :action=>"show"}, expected: {:controller=>"books", :action=>"show"}, diff: {:search=>"Dracula"}
删除代码的视图行,一切正常。也改成
<%= link_to book.title, :controller => "books", :action => "show", :search => book.title %>
让它工作。
我已经创建了一个独立的 Rails 应用程序来单独演示我的问题 http://github.com/jowls/singular_resource_bug
这是一个错误吗?通过单一资源和宁静路线的某种组合带来的?
这是在 Rails 2.3.10 上
谢谢
【问题讨论】:
-
也许我遗漏了一些东西,但是当您拥有图书资源时,为什么还要使用
:search => book.title?为什么不使用link_to book.title, book_path(book),假设您希望将用户链接到图书资源本身。 -
这是一个人为的例子来说明错误,我承认不是特别深思熟虑。在实际应用程序中,我正在创建一个指向搜索结果的链接。
标签: ruby-on-rails rest routing