我目前正在使用以下方法创建子关联(case_mains与便笺具有one_to_many关系)。
创建注释链接:
<%= link_to 'New Note', new_note_path(:case_main_id => @case_main.id)%>
注释表格:
<%= form.hidden_field :case_main_id, :value => params[:case_main_id]%>
这通常可以正常工作,直到导航到注释表单后刷新页面,或者更有可能在提交时未通过验证检查。然后,笔记表单丢失了case_main_id并给我一个“案例主不能为空”的错误。我应该使用另一种方法吗?
谢谢!
只是猜测,我想您的表单是form_for
或form_with model: ...
标签,对吧?
如果这样,请不要这样做:
form.hidden_field :case_main_id, value: params[:case_main_id]
仅执行此操作:
form.hidden_field :case_main_id
并且在new
操作上将case_main_id设置为新的音符:
@note = Note.new(case_main_id: params[:case_main_id])
您当前代码的问题是,提交表单后,case_main_id位于params[:note][:case_main_id]
。