错误:“Param丢失或值为空:child”
我已嵌套对象(子控件和查看器位于父文件夹中)。在父详细信息页面上,我列出了表格中的所有子项。其他方法,如编辑,更新,新工作。但是我希望有一个链接我的方法'graduate',它可以在父页面上更改子属性graduate_date。我试图通过在Child controller#graduate action
中更改Time.now的毕业日期来实现class ParentsController
def show
@parent = Parent.find params[:id]
@children = @parent.children
end
- 家长视图 -
<% @children.each do |child| %>
<tr>
<td><%= child.name %>
<% if child.graduated? %>
<td> graduated </td>
<% else %>
<td><%= link_to 'graduate now', graduate_parent_child_path(@parent, child) %></td>
<% end %>
</tr>
<% end %>
- 模特 -
Parent: has_many
Child: belongs_to
- 子控制器 -
def graduate
@parent = Parent.find params[:parent_id] ==> parent_id & id are correct
@child = Child.find params[:id]
@child.update_attribute(:graduation_date, Time.now.strftime(%m%d%Y)) ==> here does not updates!!!
end
- routes.rb -
resources :parents do
resources children, controller: parent/children do
member { match :graduate, via [get, patch] } ==> rails forces me to use get
end
end
Rais强迫我在路线中使用get。我已经连接到控制器,第2行“毕业”工作正常,但属性没有更新,但graduated_date已经指定为nil。
答案 0 :(得分:0)
在您的ParentsController中设置@child,但在您的视图中,您需要找@children