Как можно добавить scope, чтобы в index отображались только те проекты, у которых есть изображения?

Как можно добавить scope, чтобы в index отображались только те проекты, у которых есть изображения?

class Project < ActiveRecord::Base
  attr_accessible :description, :title, :year, :location

  belongs_to :user

  has_attachments :images, accept: [:jpg, :png, :gif]

  validates :user_id, presence: true
  validates :title, presence: true

  default_scope order: 'projects.created_at DESC'
end


понимаю что примерно я должен добавить
scope :with_images, self.images.count > 0
но это не работает
  • Вопрос задан
  • 2652 просмотра
Пригласить эксперта
Ответы на вопрос 1
scope :with_images {:joins => [:images], :conditions => "images.project_id IS NOT NULL"}


Но лучше без скоупов, ИМХО. Некрасиво это. Я бы на вашем месте просто метод запилил какой нибудь типа:

def self.with_images
 all.reject{|t| t.images.empty?}
end
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект