Как записать оператор AREL в таблицу с самоссылкой - PullRequest
1 голос
/ 21 ноября 2010

Я написал довольно много заявлений AREL, но я завязываю себя над этим. Вот моя ситуация:

class Product < AR::Base
  has_many :parents, :class_name => "ProductLink", :foreign_key => :to_product_id
  has_many :children, :class_name => "ProductLink", :foreign_key => :from_product_id

  # has an attribute called "identifier"

end

class ProductLink < AR::Base
  belongs_to :parent, :class_name => "Product", :foreign_key => :from_product_id
  belongs_to :child, :class_name => "Product", :foreign_key => :to_product_id
end

Я хочу получить все продукты, которые имеют дочерний продукт с идентификатором, который соответствует некоторому значению.

Я превратил себя в крендель с этим, кажется легким, но я смотрю на это слишком долго. Я ценю любую помощь!

1 Ответ

0 голосов
/ 21 ноября 2010

Понял!

brand.products.joins(:children => :child).where(:children => { :child => { :searchable_identifier.matches => "2136" } } )

Это прекрасно работает. Видишь хешированные соединения? Вот что меня оттолкнуло.

...