рельсы 3 области видимости 3 уровня глубины - PullRequest
1 голос
/ 03 февраля 2012

Вот мои модельные отношения:

User
has_many :book_offers
has_and_belongs_to_many :books

BookOffer
has_and_belongs_to_many :books
belongs_to :user

Book
has_and_belongs_to_many :book_offers
has_and_belongs_to_many :users

Вот области, которые я использую:

User
scope :current_users, lambda {
  joins(:book_offers) & BookOffer.current_offers.
  order("user.company_name ASC")
}

BookOffer
scope :current_offers, lambda {
joins(:books) & Book.current_books
}

Book
scope :current_books, lambda { where("ending_date > ? && beginning_date < ?", Time.now, Time.now).order("beginning_date DESC") }

Я пытаюсь получить массив пользователей, которыеесть предложения в текущих книгах.Мне также нужно сделать так, чтобы пользователи с одним и тем же названием компании появлялись в списке только один раз, даже если они являются отдельными записями пользователей.

Я не уверен, что мне нужно использовать, имеет много сквозных в этомдело.Но я боролся с этим некоторое время и нуждаюсь в некотором руководстве.

Спасибо

...