使用Active_record-acts_as作为多对多关系

时间:2016-08-17 10:19:28

标签: ruby-on-rails activerecord ruby-on-rails-4.2

以下是示例:

class Product < ActiveRecord::Base
  actable
  belongs_to :store
end

class Pen < ActiveRecord::Base
  acts_as :product
end

class Book < ActiveRecord::Base
  acts_as :product
end

class Store < ActiveRecord::Base
  has_many :products
end

我有多家商店,即使他们不属于商店,我也想保留Pens and Books。

我的第一个问题是,当我向商店添加笔(通过产品)时,商店未在产品表中设置

store.products << pen

这创建了一个product实体,但未添加store_id

其次,我希望能够在不删除笔的情况下删除产品。目前,产品和笔都已删除。

编辑:这是我在终端中获得的内容

 SQL (0.1ms)  INSERT INTO "products" ("actable_id", "actable_type", "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["actable_id", 25], ["actable_type", "Pen"], ["created_at", "2016-08-17 10:05:24.947018"], ["updated_at", "2016-08-17 10:05:24.947018"]]

没有提及尝试保存商店

由于

0 个答案:

没有答案