1

运行 Rails 3.2.1,我有以下路线:

resources :photos, :path_names => { :new => 'upload' } do
  resources :votes
end

出于某种原因,如果我浏览到photos/1/votes/new我得到

ActiveRecord::RecordNotFound in VotesController#show
Couldn't find Vote with id=new

为什么 Rails 会路由votes/new到 show 动作?有没有人遇到过这个问题?

4

1 回答 1

0

捂脸!

我没有意识到该:path_names选项也适用于嵌套资源 - Votes 模型正在寻找新操作 atvotes/upload而不是votes/new.

我改变了路线如下,一切都很好:

resources :photos do
  collection do
    get 'upload' => 'photos#new'
  end
  resources :votes
end
于 2012-04-09T03:29:47.310 回答