0

每次保存常规表单时,我的嵌套属性表单都会自动添加不需要的字段。

保存后如何防止添加额外的字段?

registrations_controller.rb控制器

def edit
  @user = User.find(current_user.id)
  @profile = Profile.new
  @user.businesses.build
end 

business.rb模型

class Business < ActiveRecord::Base
  belongs_to :users
end

user.rb模型

class User < ActiveRecord::Base
  has_many :businesses
end

查看页面

<%= form_for @user, :html => {:multipart => true} do |f| %>
  <%= f.fields_for :businesses do |builders| %>
    <%= builders.text_field :name %>
  <% end %>

  <%= f.submit "Save" %>
<% end %>

起初它显示一个空字段,然后当我按下保存时,它会添加另一个字段,即使它是否为空白。我现在只想保留一个字段,而不是自动添加另一个字段。

4

1 回答 1

1

尝试:

class User < ActiveRecord::Base
  has_many :businesses
  accepts_nested_attributes_for :businesses, allow_destroy: true, reject_if: lambda { |b| b[:name].blank? }
end

更新:

@user.businesses.build if @user.businesses.empty?
于 2013-09-20T05:51:23.110 回答