我有两种模式: - a)A b)B
模型A看起来像这样: -
class A < ActiveRecord::Base
has_many :bs ,:dependent => :destroy
validates :name, :presence=>true
accepts_nested_attributes_for :bs
attr_accessible :bs_attributes
end
模型B看起来像这样
class PlanDay < ActiveRecord::Base
belongs_to :a
attr_accessible :a_attributes
end
在我看来,我使用了form_for和fields_for,但我对我得到的参数感到困惑: -
Parameters: {"a"=>{"name"=>"swsdw" , "bs_attributes"=>{"0"=>{"friday"=>"true", "wednesday"=>"", "tuesday"=>"", "sunday"=>"true", "saturday"=>"true", "monday"=>"", "thursday"=>""}}
这是什么,我在bs_attributes中获得了什么?这是我无法在'bs'表中保存我的日期值的原因吗?
我将此保存如下: - @a = A.new(params [:a])
这样可以保存我的两个模型都被保存,但参数中存在的所有日期都会以null保存。
答案 0 :(得分:2)
A
与has_many
有B
的关系。因此,bs_attributes
实际上是一个包含多个Bs
的数组。因此,0
表示第一个B
。如果您已经通过了两个Bs
,那么上面会有0
,另一个哈希以1
开头。
我不认为0
导致B
具有空值。并且0
不会导致问题,因为您在保存bs
时可以保存多个A
。
您说“我将此保存为以下内容: - @a = A.new(params[:a])"
。您是否保存@a
或者您忘记将其包含在您的问题中?之后添加@a.save!
。 (!
)会在未保存@a
的情况下向您显示失败的验证。