한 페이지에 두 개의 양식이 있습니다. 이 중 하나가 업데이트 양식입니다. 다른 폼은 동일한 컨트롤러 동작으로 이동하지만 폼을 실제로 업데이트하지 않는 단일 단추입니다. 여기서 첫 번째 형태 :레일 - 한 페이지에 두 개의 양식이 있습니다.
<%= form_for [@project, @schedule] do |f| %>
<%= f.fields_for :tasks do |builder| %>
<%= render 'task_fields', :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add task", f, :tasks %>
<p><%= f.submit "Submit" %></p>
<% end %>
그리고 여기 번째 형태 :
<%= form_tag project_schedule_path(@project, @schedule), method: "patch" do %>
<div><%= hidden_field_tag :emp_accepts, true %></div>
<%= submit_tag "Accept schedule", class: "btn btn-large btn-primary" %>
<% end %>
문제는 강한 파라미터이다. 강력한 매개 변수에는 schedule이 필요하며 첫 번째 형식 만 제공합니다. 그래서 두 번째 폼을 사용하려고하면 에러가 반환됩니다. 여기에 강한 PARAMS은 다음과 같습니다
def schedule_params
params.require(:schedule).permit(:emp_accepts,
tasks_attributes: [:title, :content, :_destroy])
end