嵌套路由的一条路由不起作用

时间:2013-03-04 00:16:33

标签: ruby-on-rails-3 rails-routing

我有一个用户模型has_many:投资组合和每个投资组合has_many:图片。我的路线看起来像这样:

resources :users do
  resources :portfolios do
    resources :pictures
  end
end

然后我尝试创建一个像这样的新投资组合:

<%= link_to "new portfolio...", new_user_portfolio_path(current_user) %>

使用这样的表格:

<%= form_for [current_user, @portfolio], html: { class: "form_settings" } do |f| %>
...
<% end %>

但是当我点击&#34;新的投资组合......&#34;我的网址是/users/12/portfolios/new,我收到此错误:

No route matches {:action=>"show", :controller=>"portfolios", :user_id=>#<User id: 12, name: "michael", password_digest: "d787f56b080945c1ec0b3343cbf962ca427bb8ef", remember_token: "dL4nPlt0E5azUMemNIvkdg", admin: false, created_at: "2013-03-03 01:18:19", updated_at: "2013-03-03 19:56:28">, :id=>#<Portfolio id: nil, user_id: 12, name: nil, created_at: nil, updated_at: nil>}

1 个答案:

答案 0 :(得分:0)

我认为错误不是来自创建投资组合的表单。 /portfolios/new页面上必须有一个链接才能添加图片或类似内容,这就是失败的原因(因为投资组合是新记录)。

当您在new页面上时,您需要隐藏此链接。