我的嵌套属性表单每次保存常规表单时都会自动添加不需要的字段。
如何在保存后阻止添加额外字段?
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 %>
首先它显示一个空字段,然后当我按保存时,它会添加另一个,即使它是空白还是没有。我只想暂时保留一个字段而不是自动添加另一个字段。
答案 0 :(得分: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?