Rails嵌套新视图由于某种原因被路由显示?

时间:2012-04-09 03:12:19

标签: ruby-on-rails routing

运行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动作?有没有人以前遇到过这个问题?

1 个答案:

答案 0 :(得分:0)

捂脸!

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

我按照以下方式更改了路线,一切顺利:

resources :photos do
  collection do
    get 'upload' => 'photos#new'
  end
  resources :votes
end