has_many通过rails中的动态条件

时间:2018-05-17 01:19:07

标签: ruby-on-rails

我想建立一个像这样的协会:

has_many :foos, through: self.attr == 'bar' ? :association1 : :association2

但我遇到了麻烦,我无法在此处访问self.attr。那我该怎么办?

请帮助!!!

1 个答案:

答案 0 :(得分:1)

可以做为2个协会:

has_many :association1_foos, through: :association1
has_many :association2_foos, through: :association2

def foos
  self.attr == 'bar' ? self.association1_foos : self.association2_foos
end