Условное отношение - PullRequest
0 голосов
/ 18 мая 2010

У меня есть такая модель:

Stem
  -id
  -etc

И тогда у меня есть

Stemrelation
  -stem_id
  -related_stem_id
  -active

Я могу получить связанные основы со следующими отношениями

class Stem < ActiveRecord::Base
  has_many :stemrelations
  has_many :related_stems, :through => :stemrelations
end

class Stemrelation < ActiveRecord::Base
  belongs_to :stem
  belongs_to :related_stem, :class_name => "Stem", :foreign_key => "related_stem_id"
end

Но сейчас я бы хотел только установить активные отношения.

Я пытался добавить это к модели Stem:

has_many :active_related, :through => :stemrelations, :source => :related_stem, :conditions => {:active => true}

но это дает мне ошибку, потому что он пытается проверить активный флаг на модели ствола вместо взаимосвязи ствола. Что я могу изменить здесь?

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Вы уверены, что вам нужна условная ассоциация? Может быть named_scope подходит здесь:

class Stem < ActiveRecord::Base
  has_many :stemrelations
  has_many :related_stems, :through => :stemrelations

  named_scope :active, :conditions => {:active => true}
end

Вы можете использовать это так:

Stem.first.related_stems.active
0 голосов
/ 14 декабря 2011

для условий, вы должны использовать SQL SYNTAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...