rails4で2つの同じモデルをhas_manyで結びつけるには?
itemモデルを作成しuserモデルにmain_itemとsub_itemの2つのアイテムリストを結びつけようと思い、以下のようにしてみました。
class User < ActiveRecord::Base
has_many :main_items, :as => :itemable, :class_name => "Item"
has_many :sub_items, :as => :itemable, :class_name => "Item"
end
そのあと、それぞれのitemsに要素を追加してみたのすが、内部的にmainとsubが指す要素が同一のものになってしまい、どちらか片方に要素を追加すると、もう片方にも要素が追加されてしまうという現象が発生しました。
# user = User.new
# user.main_items.new name:'sword'
# user.sub_items.new name:'shield'
# user.save
# user.main_item.count
=> 2
mainとsubのアイテムリスト独立してuserに結びつけたい場合には、どのようにすればよいのでしょうか。