Rails Ассоциации для current_user - PullRequest
4 голосов
/ 13 марта 2012

Я недавно прочитал эту статью: http://pivotallabs.com/users/nick/blog/articles/275-advanced-proxy-usage-part-i, в которой говорится о прокси-сервере AR и т. Д.

Автор указал, в чем заключается моя проблема.

Этот примеропишу его.

class Gallery
  has_many :images, :class_name => 'Image'
  has_many :my_images, :class_name => 'Image' #, :conditions => "images.user_id == current_user.id" # FIX THIS
end

и здесь

class Image
  belongs_to :user
  belongs_to :gallery
end

Примечание: я использую PostgreSQL

Так что, когда вы получаете доступ к my , все изображения сгалерея: Gallery.first.includes(:my_images)

Если я хочу вернуть все изображения: Gallery.first.includes(:images)

Итак, как передать текущему пользователю условия в has_many?

Редактировать

User
  has_many :images
  has_many :galleries, through: :images

1 Ответ

0 голосов
/ 13 марта 2012

Если я хорошо понимаю, вы хотите получить что-то вроде:

current_user.galleries.first.images

Если это так, вам просто нужно создать ассоциацию has_many между пользователем и галереей через третью модель, возможно, с именем UserGallery.

Более подробная информация о многих через:

http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

...