我有一个用户模型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>}
答案 0 :(得分:0)
我认为错误不是来自创建投资组合的表单。 /portfolios/new
页面上必须有一个链接才能添加图片或类似内容,这就是失败的原因(因为投资组合是新记录)。
当您在new
页面上时,您需要隐藏此链接。