【发布时间】:2020-05-13 14:48:47
【问题描述】:
当发现 Arel 的东西不可链接时,我真的很惊讶使用 Arel 构建单个复合 sql 查询。
经过长时间的谷歌搜索,我找到了单一的解决方案。它使用'reflect'自定义方法,想法是递归实例化新的构建器类..不管。
例如,我是如何尝试的:
e = Arel::Table.new(:events)
a = e.where(e[:id].eq(1))
if (smth) { a.where(e[:name].eq('joe')) } # not works
不可能以某种方式将其链接在一起。我的计划支离破碎。好吧,我已经手动实施了。
但是,这不是一个好主意,因为我应该防止任何 sql-injections 陷阱等。
【问题讨论】:
标签: ruby-on-rails activerecord arel