有没有一种方法可以直接引用(直接使用rails,而不诉诸大量的自定义SQL)嵌套在多态关系后面的关系?在下面的例子中,是否有一种方法可以在User中定义一个引用LayerTwo的has_many关系?has_many:通过,嵌套多态关系
我想要做的(用户)
has_many :layer_twos, :through => layer_ones
但这种方法并没有考虑到该帐户先前指定的has_many关系,通过多态的关系。有什么建议么?这可能不是通过现有的铁路公约,但我认为我会把问题推迟给那些更聪明的人。
class CreateOwners < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.timestamps
end
create_table :owners do |t|
t.timestamps
t.references :owned, :polymorphic => :true
t.references :user
end
create_table :layer_ones do |t|
end
create_table :layer_twos do |t|
t.references :layer_one
end
end
end
class Owner < ActiveRecord::Base
belongs_to :user
belongs_to :owned, :polymorphic => true
end
class User < ActiveRecord::Base
has_many :owners
has_many :layer_ones, :through => :owners, :source => :owned, :source_type => 'LayerOne'
end
class LayerOne < ActiveRecord::Base
has_many :owners, :as => :owned
has_many :layer_twos
end
class LayerTwo < ActiveRecord::Base
belongs_to :LayerOne
end
感谢只想做个验证与某人其他。 – 2009-09-08 16:43:57