使用一个表单创建多个记录Rails和Simple_Form

时间:2014-02-12 21:30:22

标签: ruby-on-rails-4 simple-form

我正在尝试使用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?

0 个答案:

没有答案