我有一个可以很好创建的表的列表。然后,我想通过单击父级上的编辑(转到edit.html.erb),然后单击“新建孩子”来创建子表。父表和子表之间的关系是has_and_belongs_to_many。Ruby on Rails - 在habtm关系中创建子表
<%= button_to 'New Child', new_parent_child_path([@parent, @parent.children.build]), :method => :get %>
这是链接到新的子窗体,产生以下错误:
'undefined method `children' for nil:NilClass'
服务器日志给我下面的:
Started GET "/parents/1//children/new" for blah at blah
Processing by ChildrenController#new as HTML
Parameters: {"parent_id"=>"1"}
Rendered children/_form.html.erb (1.3ms)
Rendered children/new.html.erb within layouts/application (1.9ms)
Completed 500 Internal Server Error in 4ms
ActionView::Template::Error (undefined method `children' for nil:NilClass):
1: <%= form_for ([@parent, @parent.children.build]) do |f| %>
2:
3: <div class = "field">
4: <%= f.label :Child_name %><br/>
app/views/children /_form.html.erb:1:in`_app_views_children__form_html_erb__2140243687_70034946643120'
app/views/children/new.html.erb:3:in `_app_views_children_new_html_erb__655166082_70034947829100'
的_form.html.erb在new.html.erb中呈现的子图如下:
<%= form_for ([@parent, @parent.children.build]) do |f| %>
<div class = "field">
<%= f.label :Child_name %><br/>
<%= f.text_field :ChildName %>
</div>
<div class = "field">
<%= f.label :Child_email_address %><br/>
<%= f.text_field :ChildEmail %>
</div>
<div class = "actions">
<%= f.submit %>
</div>
<% end %>
(注意:表格实际上并不叫做父母和孩子,我只是为了保密而使用这些名字。另外,请不要劝我通过使用的has_many,我不感兴趣)
编辑#1:代码从“ChildrenController”
你可以发布你的'新'行动的代码吗? – cdesrosiers
已添加您请求的代码。 – user1701622
你是一个绝对的明星,谢谢你这么多!我一直坚持这几天。我是新来的stackoverflow;我怎么去说这是固定的,并给你任何相当于网站使用的代表/业力? – user1701622