Rails顺序方法; 列命名:order

Stu*_*art 3 sql ruby-on-rails

我有一个模型练习,它有以下列:circuit和:order(以及其他).在一个视图中,我试图首先通过:circuit然后通过:order来命令练习.当我使用以下内容时:

@schedule.exercises.order(:circuit).each do |exercise|
Run Code Online (Sandbox Code Playgroud)

它按预期工作.但是,当我尝试添加:order列时:

@schedule.exercises.order(:circuit, :order).each do |exercise|
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

SQLite3::SQLException: near "order": syntax error: SELECT "exercises".* FROM "exercises"  WHERE "exercises"."schedule_id" = 1 ORDER BY circuit, order
Run Code Online (Sandbox Code Playgroud)

当我单独传递: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
Run Code Online (Sandbox Code Playgroud)

我假设这是因为列名(:order)与SQL方法名(order)相同.我想知道除了改变我的列标题之外还有什么方法吗?

谢谢,斯图尔特

Rya*_*igg 7

更改列名是唯一明智的选择.将其更改为"位置".