многоцелевые рельсы - PullRequest
0 голосов
/ 13 февраля 2012
class Anketum < ActiveRecord::Base
  has_one :user 

  class << self
    def search(params)
      self.scope :h, :conditions => {:height => params[:height]}
      #scope :w, :conditions => {:width => params[:width]}
      self.h if params[:height]
    end

  end
end

Мне нужно создать несколько областей видимости в зависимости от параметров [: xxx] присутствует

1 Ответ

1 голос
/ 13 февраля 2012

Судя по вашему примеру кода, вы слишком сильно перегружаете это:

# app/models/anketum.rb
class Anketum < ActiveRecord::Base
end

# app/controller/some_controller.rb
def search
  @results = Anketum.scoped
  [:width, :height, :any, :other, :searchable, :attribute].each do |key|
    @results.where(key => params[key]) if params[key].present?
  end
end

Кстати, ваши модели никогда не должны обращаться к хэшу params.

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