Ruby on Rails - 嵌套属性,保存后添加不需要的字段

时间:2013-09-20 05:46:14

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 nested-attributes

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

如何在保存后阻止添加额外字段?

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 %>

首先它显示一个空字段,然后当我按保存时,它会添加另一个,即使它是空白还是没有。我只想暂时保留一个字段而不是自动添加另一个字段。

1 个答案:

答案 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?