Кажется, я не могу использовать параметр ActiveRecord:: Base.find: заказывайте более одного столбца за раз.
Например, у меня есть модель "Показать" с датой и посещением столбцов.
Если я запустил следующий код:
@shows = Show.find(:all, :order => "date")
Получаю следующие результаты:
[#<Show id: 7, date: "2009-04-18", attending: 2>,
#<Show id: 1, date: "2009-04-18", attending: 78>,
#<Show id: 2, date: "2009-04-19", attending: 91>,
#<Show id: 3, date: "2009-04-20", attending: 16>,
#<Show id: 4, date: "2009-04-21", attending: 136>]
Если я запустил следующий код:
@shows = Show.find(:all, :order => "attending DESC")
[#<Show id: 4, date: "2009-04-21", attending: 136>,
#<Show id: 2, date: "2009-04-19", attending: 91>,
#<Show id: 1, date: "2009-04-18", attending: 78>,
#<Show id: 3, date: "2009-04-20", attending: 16>,
#<Show id: 7, date: "2009-04-18", attending: 2>]
Но если я запустил:
@shows = Show.find(:all, :order => "date, attending DESC")
ИЛИ
@shows = Show.find(:all, :order => "date, attending ASC")
ИЛИ
@shows = Show.find(:all, :order => "date ASC, attending DESC")
Я получаю те же результаты, что и сортировка по дате:
[#<Show id: 7, date: "2009-04-18", attending: 2>,
#<Show id: 1, date: "2009-04-18", attending: 78>,
#<Show id: 2, date: "2009-04-19", attending: 91>,
#<Show id: 3, date: "2009-04-20", attending: 16>,
#<Show id: 4, date: "2009-04-21", attending: 136>]
Где, как, я хочу получить следующие результаты:
[#<Show id: 1, date: "2009-04-18", attending: 78>,
#<Show id: 7, date: "2009-04-18", attending: 2>,
#<Show id: 2, date: "2009-04-19", attending: 91>,
#<Show id: 3, date: "2009-04-20", attending: 16>,
#<Show id: 4, date: "2009-04-21", attending: 136>]
Это запрос, создаваемый из журналов:
[4;35;1mUser Load (0.6ms)[0m [0mSELECT * FROM "users" WHERE ("users"."id" = 1) LIMIT 1[0m
[4;36;1mShow Load (3.0ms)[0m [0;1mSELECT * FROM "shows" ORDER BY date ASC, attending DESC[0m
[4;35;1mUser Load (0.6ms)[0m [0mSELECT * FROM "users" WHERE ("users"."id" = 1) [0m
Наконец, вот моя модель:
create_table "shows", :force => true do |t|
t.string "headliner"
t.string "openers"
t.string "venue"
t.date "date"
t.text "description"
t.datetime "created_at"
t.datetime "updated_at"
t.decimal "price"
t.time "showtime"
t.integer "attending", :default => 0
t.string "time"
end
Что мне не хватает? Что я делаю неправильно?
ОБНОВЛЕНИЕ: Спасибо за вашу помощь, но кажется, что вы все были в тупике, насколько я был. То, что решило проблему, было фактически переключением баз данных. Я переключился с SQL3 по умолчанию на mysql.