Saving multiple records with a single form in Rails 4

后端 未结 3 693
忘了有多久
忘了有多久 2020-12-30 14:23

I have a model called Family, which belongs_to User I want to enable the user to add multiple family members in a single form, which is in

3条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-30 14:36

    You need to tweak your code like this.Assuming you have the attribute name in users table.

    In your User model

    class User < ActiveRecord::Base
        has_many :families, :dependent => :destroy 
        accepts_nested_attributes_for :families, :allow_destroy => true
    end
    

    In your users_controller

    def new
    @user = User.new
    @family = 3.times { @user.families.build } #here
    end
    

    Your strong parametrs should look like this

    def user_params 
    params.require(:user).permit(:name, families_attributes: [:name,:email]) 
    end
    
    #users/new.html.erb
    <%= form_for(@user) do |f| %>
    
    <%= f.label :name %>
    <%= f.text_field :name %>
    <%= f.fields_for :familes do |builder| %> <%= render 'family_fields', :f => builder %> <% end %>
    <%= f.submit %>
    <% end %> #users/_family_fields.html.erb
    <%= f.label :name, "Name" %> <%= f.text_field :name %>
    <%= f.label :email, "Email" %> <%= f.text_field :email %>

提交回复
热议问题