【发布时间】:2018-06-15 13:56:26
【问题描述】:
我想在 ActiveRecord/Arel 中编写一个查询(没有对 SQL 进行硬编码)测试日期是否在两列之间:例如WHERE input_date BETWEEN some_table.column_1 AND some_table.column_2。我尝试了以下方法:
between_query = Arel::Nodes::Between.new(
Time.zone.now,
Arel::Nodes::And.new(
[
arel_table[:column_1],
arel_table[:column_2]
]
)
)
where(between_query)
但我收到错误 Arel::Visitors::UnsupportedVisitError: Unsupported argument type: Time. Construct an Arel node instead.
【问题讨论】:
-
出于好奇,您为什么不使用老式的 AR
where声明?
标签: ruby-on-rails rails-activerecord arel