class A
has_many :c
class B
has_many :c
class C
belongs_to :a
belongs_to :b
当我有C
的实例时,其父级可以是A
或B
,但我不知道它是什么时候。有没有一种简单的方法可以使用Rails关联来访问父项,无论它是什么?
答案 0 :(得分:1)
有几种方法可以做到这一点,包括多态,但也许最直接的方法是:
class C
belongs_to :a
belongs_to :b
def parent
a || b
end
end
# Usage:
C.new.parent # => nil
a1 = A.new
c1 = a1.c.create
c1.parent # => #<A:...>
b1 = B.new
c2 = b1.c.create
c2.parent # => #<B:...>