モデルExercisesがあり、:circuitと:orderの列があります(とりわけ)。ビューでは、最初に演習を:circuitで並べ替え、次に:orderで並べ替えようとしています。私が以下を使用するとき:
@schedule.exercises.order(:circuit).each do |exercise|
期待どおりに動作します。ただし、:order列を追加しようとすると:
@schedule.exercises.order(:circuit, :order).each do |exercise|
次のエラーが発生します。
SQLite3::SQLException: near "order": syntax error: SELECT "exercises".* FROM "exercises" WHERE "exercises"."schedule_id" = 1 ORDER BY circuit, order
:order列だけを渡した場合にも同じエラーが発生します。
@schedule.exercises.order(:order).each do |exercise|
SQLite3::SQLException: near "order": syntax error: SELECT "exercises".* FROM "exercises" WHERE "exercises"."schedule_id" = 1 ORDER BY order
これは、列名(:order)がSQLメソッド名(order
)と同じであるためだと思います。列見出しを変更する以外に、これを回避する方法があるかどうか疑問に思っていますか?
ありがとう、スチュアート