Rails 3中访问子记录

问题描述:

class A 
has_many :c 

class B 
has_many :c 

class C 
belongs_to :a 
belongs_to :b 

的父母。当我有C一个实例,其母公司可以为AB但我不事先知道它是。有没有一种简单的方法可以使用Rails关联来访问父对象?Rails 3中访问子记录

有几种方法可以做到这一点,包括多态,但也许是最直接的方法是这样的:

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:...> 
+0

这样的作品,感谢您的快速答复。 – Bob 2012-01-06 22:51:34