Как использовать метод 'where' из 'ActiveRecord :: QueryMethods', чтобы ограничить поиск? - PullRequest
3 голосов
/ 11 марта 2011

Я использую Ruby on Rails 3, и я хотел бы ограничить поиск в where методе с ActiveRecord::QueryMethods, используя что-то как следующее

Users.where(:name => "Test_name", :limit => 10)
Users.where(:name => "Test_name").limit(10)

То есть Я бынравится запрашивать только 10 записей .Как я могу это сделать?


В исходном коде RoR есть:

def where(opts, *rest)
  relation = clone
  relation.where_values += build_where(opts, rest) unless opts.blank?
  relation
end

Ответы [ 2 ]

7 голосов
/ 11 марта 2011

Ваш второй пример работает:

Users.where(:name => "Test_name").limit(10)

В этом руководстве по Rails есть хороший список и объяснение всех методов запросов: http://guides.rubyonrails.org/active_record_querying.html

1 голос
/ 11 марта 2011

Я не думаю, что вы можете сделать это где. Вы можете сделать только

Users.where(:name => "Test_name").limit(10)

или если вы настаиваете на использовании: limit в другом методе селектора:

Users.find(:all, :conditions => ["name = 'Test_name'"], :limit => 10)
...