我有以下2个型号。
class Expression < ActiveRecord::Base
has_many :patterns, :foreign_key => "PTN_EXPRESSION_FK", :dependent => :destroy
accepts_nested_attributes_for :patterns, :allow_destroy => true
end
class Pattern < ActiveRecord::Base
belongs_to :expression, :foreign_key => :PTN_EXPRESSION_FK
end
我想创建一个记录(带有嵌套属性)并将其存储在表中而不使用表单。
Expression.create(:EXP_VALUE => @exp.val,
:EXP_ADD_VALUE => @exp.add_val
)
上面的代码创建了一个表达式记录并将其保存在Expression表中。
我还想将模式值传递给上面的代码,以便在存储表达式的同时将模式值存储在模式表中。
如何在上面的“创建”代码中传递嵌套属性值?
非常感谢你的建议。
答案 0 :(得分:0)
嵌套属性可以是这样的:
Expression.create(:EXP_VALUE => @exp.val,
:EXP_ADD_VALUE => @exp.add_val,
:patterns_attributes => [
'0' => {:pattern_attr1 => ..., pattern_attr2 => ..., ...},
'1' => {:pattern_attr1 => ..., pattern_attr2 => ..., ...},
'2' => {:pattern_attr1 => ..., pattern_attr2 => ..., ...},
...
]
)