2012-12-04 49 views
0

我有以下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  
     ) 

上面的代碼創建表達式記錄並將其保存在表達式表中。

我也想將模式值傳遞給上面的代碼,以便在存儲表達式的同時將模式值存儲在模式表中。

如何在上面的「創建」代碼中傳遞嵌套屬性值?

非常感謝您的建議。

回答

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 => ..., ...}, 
     ... 
     ] 
    )