Rails 3 обращается к родителю дочерней записи - PullRequest
0 голосов
/ 07 января 2012
class A
 has_many :c

class B
 has_many :c

class C
 belongs_to :a
 belongs_to :b

Когда у меня есть экземпляр C, его родитель может быть либо A, либо B, но я заранее не знаю, какой это.Есть ли простой способ использовать ассоциацию Rails для доступа к родителю, какой бы он ни был?

1 Ответ

1 голос
/ 07 января 2012

Есть несколько способов сделать это, в том числе полиморфизм, но, пожалуй, самый простой способ это:

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:...>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...