Rails嵌套资源不在新的渲染表单上

时间:2014-10-10 12:53:53

标签: ruby-on-rails ruby-on-rails-4 routes form-for

@reckoner has_many @shift_requirements和路线

resources :reckoners do
  resources :shift_requirements
end

在reckoner_controller.rb下的视图中我有

<%= link_to 'create a shift', [:new, @reckoner, :shift_requirement]%>

...它会触发包含表单助手的正确视图。然后它抛出错误 -

undefined method `shift_requirements_path' for #<#<Class:0x007f908e00a458>:0x007f908e8a09c8>

我怎么出错了?

shift_requirement.rb是 -

class ShiftRequirement < ActiveRecord::Base
  belongs_to :reckoner
end 

reckoner.rb是 -

class Reckoner < ActiveRecord::Base
  has_many :shift_requirements
end

...而且表单中的视图现在是

<%= form_for(@reckoner, @shift_requirement) do |f| %>
...
<%= f.submit %>

1 个答案:

答案 0 :(得分:1)

我认为你的表格有:

<%= form_for(@shift_requirement) do |f| %>
  <%= f.submit %>
<% end %>

由于你想要的嵌套路线

<%= form_for([@reckoner, @shift_requirement]) do |f| %>
  <%= f.submit %>
<% end %>