Главная » 2008 » Сентябрь » 16 » Сортировка в find. Зачем нужны conditions
22:05
Сортировка в find. Зачем нужны conditions
Для того чтобы найти что-то в БД используется метод Find(из фреймворка ActiveRecord), который имеет следующий вид:

result=
User.find(:all/:first/:last,
:conditions=>"some conditions",
:order=>"some order",
:limit=>"count records in result")


:all/:first/:last - альтернативы поиска, разделены косой чертой чисто схематически, на самом деле для любого запроса испольовать разрешено только один из параметров. Соответственно они указывают что вернуть в запросе - все записи/первую/последнюю запись.

:conditions=>"some conditions" - это условия выборки, например:
:conditions=>"id = 1 and name='some name'"
или
:conditions=>["name= ? and lastname = ? ", name, lastname] - параметры передаются как Хеш.

:order=>"some order" - условие сортировки, например:
:order=>"name, age DESC" - сортируем сначала по имени(по алфавиту, параметр ASC можно опускать, так как это сортировка по-умолчанию), потом сортируем по возрасту, по
убыванию(указать надо явно).

:limit=>"count records in result" - количество возвращаемых записей, например:
:limit=>"10"

Дополнительные параметры добавлю в статью позже, если она будет пользоватся интиресом у читателей (:joins,:select,:offset,:from,:group,:lock,:readonly)
Просмотров: 426 | Добавил: Sergey Saenko | Рейтинг: 0.0/0
Всего комментариев: 5
5 Sergey Saenko  
0
раз есть желающие почитать - пожалуйста. Завтра читайте первую статью из цикла - связывание моделей

4 ostap  
0
афтар пиши исчо! в смысле что там говорилось про продолжение?!

3 Sergey Saenko  
0
пример того как пользоваться Like смотрите тут: http://www.mysql.ru/docs/man/Pattern_matching.html

2 Sergey Saenko  
0
я бы посоветовал использовать like
User.find(:all,:conditions=>["name like ?",params[:name]+"%"])

причем само выражения шаблона надо описывать в параметре,а не выражении(пример выше).

1 devandart  
0
Как в conditions засунуть регулярное выражене?

Имя *:
Email *:
Код *: