在 where claue of rails 中的数学运算

Har*_*han 2 ruby sql ruby-on-rails-3

table(days_of_weeks) 包含 8 列,其中一个是 id,其余部分构成星期几(sun、mon、tue ...),其中星期几为 0 或 1

我需要找到一周中天数总和小于 3 的行。

作为一个 sql 语句,我可以写

select id  from days_of_week where (mon + tue + wed + thu + fri + sat + sun ) < 3;
Run Code Online (Sandbox Code Playgroud)

我正在尝试从 rails 查询它

DaysOfWeek.select(:id).where((:sun + :tue + :wed + :thu + :fri + :sat + :sun) < 3)
Run Code Online (Sandbox Code Playgroud)

它显示错误,因为它只是一个符号,我试过 .to_i ,但没有运气。

我知道我可以直接使用 rails 中的 sql 语句进行查询,但我想在 rails 中进行查询?道路。

任何解决方案

Ari*_*iao 5

由于.where在 ActiveRecord中的子句中写入 String 条件是常见的,以下是否可以视为“sql 语句”?

DaysOfWeek.select(:id).where('(mon + tue + wed + thu + fri + sat + sun ) < 3')
Run Code Online (Sandbox Code Playgroud)