5

在编写了一些大型而复杂的 SQL 语句之后,我曾问过如何使用 Rails 以更好的方式做到这一点。但是我最终再次使用了 Arel,因为如果我调用“find_by_sql”,我无法嵌套更多条件。

Questions.find_by_sql(HUGE_SQL).by_filter(:popular).order('created_at').limit(5)

我的目标是:

  • 在单独的文件中组织 sql
  • 将这些字符串 sql 转换为 Arel 对象
  • 将此 arel 对象与常见的可重用条件嵌套,例如“限制、订单、..”

谢谢

4

1 回答 1

0

解决方案是使用神奇的scuttle.io将复杂的 SQL 查询转换为 Arel。然后,您可以为查询的每个部分创建单独的方法,并且仍然可以将它们组合在一起。此演示文稿中有更多详细信息。

于 2015-02-08T04:15:13.297 回答