Динамические условия находки в активной записи

Это похоже на опцию 2 Alan (выше). То, как инстанцировать httpobj, оставляют как осуществление.

httpobj.open("POST", url, true);
httpobj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
httpobj.onreadystatechange=handler;
httpobj.send(post);
5
задан Sam Saffron 23 July 2009 в 06:02
поделиться

4 ответа

Кажется, это работает довольно хорошо:

conditions = params.slice(:first_name, :age, :country)
hash = conditions.empty? ? {} : {:conditions => conditions}
@users = User.all hash 
1
ответ дан 14 December 2019 в 04:44
поделиться

Как насчет чего-то вроде:

conditions = params.only(:first_name, :age, :country)
conditions = conditions.delete_if {|key, value| value.blank?}

if conditions.empty?
  User.all
else
  User.all(:conditions => conditions)
end
3
ответ дан 14 December 2019 в 04:44
поделиться

Обычно я бы использовал именованные области для чего-то вроде этого:

class User < ActiveRecord::Base
  named_scope :name_like, lambda {|name| {:conditions => ["first_name LIKE ?", "#{name}%"]}}
  named_scope :age, lambda {|age| {:conditions => {:age => age}}}
  named_scope :in_country, lambda {|country| {:conditions => {:country => country}}}
end

class UsersController < ActionController
  def index
    root = User
    root = root.name_like(params[:first_name]) unless params[:first_name].blank?
    root = root.age(params[:age]) unless params[:age].blank?
    root = root.country(params[:country]) unless params[:age].blank?

    @users = root.paginate(params[:page], :order => "first_name")
  end
end

Это то, что я обычно делаю .

3
ответ дан 14 December 2019 в 04:44
поделиться

Вы можете попробовать Ambition или ряд других расширений ActiveRecord.

0
ответ дан 14 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: