我正在尝试使用simple_form创建一个允许我创建多个记录的表单。我将分享一些代码并在下面解释一些。
首先,我在控制器中构建了尽可能多的员工对象:
def new
@user = current_user
@restaurant = Restaurant.find(params[:restaurant_id])
@employees = Array.new(3) { @restaurant.aware_employees.build }
end
然后我创建了一条处理创建多个
的路线 resources :aware_employees do
post 'create_multiple', on: :collection
resources :restaurant_roles
end
然后我创建了视图
<%= simple_form_for create_multiple_user_restaurant_aware_employees_path(@user, @restaurant) do |q| %>
<% @employees.each do |employee|%>
<%= simple_fields_for employee do |f| %>
<div class="col-sm-6 col-xs-12">
<div class="col-xs-12 form-row">
<p class='form-label'>Name</p>
<%= f.input :name, label: false, input_html: { class: "req" } %>
<span class='feedback'></span>
</div>
<div class="col-xs-12 form-row">
<p class='form-label'>Verifcation</p>
<%= f.input :verification, label: false, input_html: { class: "req" } %>
<span class='feedback'></span>
</div>
<div class="col-xs-12 form-row">
<p class='form-label'>Hours</p>
<%= f.input :expiration, label: false, as: :date %>
<span class='feedback'></span>
</div>
<div class="col-xs-12 form-row">
<p class='form-label'>Role</p>
<%= f.association :restaurant_roles, label: false, multiple: true, collection: Role.all, label_method: :role, value: :id, input_html: { class: "chosen-select req", multiple: true, style: 'width:255px; height:200px;'} %>
<span class='feedback'></span>
</div>
</div>
<% end %>
<%end%>
<%= q.button :submit, value:'',:class => "nav-link"%>
<%end%>
我不确定这里发生了什么。我得到的错误是simple_form将post请求路由到new action而不是create_multiple。我不知道我是否会离开,但我觉得我在这里掉下了一个兔子洞。
这是错误消息: 没有路线匹配[POST]“/ users / 1 / restaurants / 46 / aware_employees / new”
为什么我认为im发布到aware_employees #new?