在rails中创建具有多个嵌套属性的数据

时间:2018-02-28 10:16:33

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 orm

我正在尝试使用嵌套属性创建item,这些是我的表:

物品

has_many :items_modifier_groups, dependent: :destroy
has_many :items_modifier_group_items, dependent: :destroy

attr_accessible :items_modifier_groups_attributes, :items_modifier_group_items_attributes
accepts_nested_attributes_for :items_modifier_groups, :items_modifier_group_items

ModifierGroup

attr_accessible: tag_id

ItemsModifierGroup

belongs_to :modifier_group
belongs_to :item
has_many :items_modifier_group_items, dependent: :destroy

attr_accessible :item_id, :modifier_group_id, :modifier_group_attributes, :items_modifier_group_items_attributes
accepts_nested_attributes_for :modifier_group, :items_modifier_group_items

ItemsModifierGroupItem - 表4

belongs_to :items_modifier_group
belongs_to :item

attr_accessible :items_modifier_group_id, :item_id, :pre_select

从控制台创建的参数:

c = Item.new(
  "name" => "test1", "items_modifier_groups_attributes"=> { 
    "0"=> { 
      "items_modifier_group_items_attributes"=> {
        "0"=> {
          "pre_select"=>"true"
        }
      }, 
      "min_item"=>"1", 
      "modifier_group_attributes"=> { 
        "tag_id"=> "5" 
      }
    }
  }
)

c.save

INSERT INTO "items_modifier_group_items" ("created_at", "item_id", "items_modifier_group_id", "pre_select", "sequence_no", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"  [["created_at", Wed, 28 Feb 2018 15:44:27 GST +04:00], ["item_id", nil], ["items_modifier_group_id", 35], ["pre_select", true], ["sequence_no", 0], ["updated_at", Wed, 28 Feb 2018 15:44:27 GST +04:00]

当它从 CONSOLE 创建项目时,item_idnil表格中为ItemsModifierGroupItem;但是,item_id是在ItemsModifierGroup表中创建的。

我错过了参数中的任何内容吗?

0 个答案:

没有答案