Ruby on rails Rails模式接受\u嵌套的\u属性\u以便正常工作

Ruby on rails Rails模式接受\u嵌套的\u属性\u以便正常工作,ruby-on-rails,Ruby On Rails,我有这样的模型: class User < ActiveRecord::Base has_one :business end class Business < ActiveRecord::Base belongs_to :user has_many : locations accepts_nested_attributes_for :locations, :reject_if => lambda { |a| a[:location].blank?} atr

我有这样的模型:

class User < ActiveRecord::Base
  has_one :business
end
class Business < ActiveRecord::Base
  belongs_to :user
  has_many : locations
  accepts_nested_attributes_for :locations, :reject_if => lambda { |a| a[:location].blank?} 
  atr_accessible :name, :locations_attributes
  ...
end

class Location < ActiveRecord::Base
  belongs_to :business
  ...
end
在BusinessController的
创建
操作中

# :Post /usres/1/businesses
def create
  @user = User.find(params[:user_id])
  @business = @user.build_business(params[:business])
  if @business.save 
    ...
  else
    ...
  end
end

我检查了日志,发现
@business.save
没有向数据库中插入任何关于位置的信息,而只是关于业务的信息,但是
参数[:business]
清楚地包含了位置散列,所以我错在哪里了???

我猜错在拒绝检查中

accepts_nested_attributes_for :locations, 
   :reject_if => lambda { |a| a[:location].blank?}
位置表中的位置属性在哪里?据我所知,你应该按以下方式检查

accepts_nested_attributes_for :locations, 
   :reject_if => lambda { |a| a[:address].blank?}

我猜出错的地方是在拒绝检查中

accepts_nested_attributes_for :locations, 
   :reject_if => lambda { |a| a[:location].blank?}
位置表中的位置属性在哪里?据我所知,你应该按以下方式检查

accepts_nested_attributes_for :locations, 
   :reject_if => lambda { |a| a[:address].blank?}