我今天在博客上看到了这个,我想,终于!Rails 会有类似HQL或Linq的东西。嗯,还是不行。我找不到任何关于此的内容。
我真正想知道的是:我是否能够忘记表的名称并仅使用对象名称?我终于可以忘记加入语法了吗?在我开始忘记其他一切(人生目标)之前,我想这样做。
据我了解,这意味着您可以编写复杂的查询而不是
Object.find(:all, :conditions = > { :limit => 10, :offset => 5 }
但更易读的方式
Object.all.limit(10).offset(5)
具有惰性求值和 AREL 语法的可链接查询:
这使您可以编写表示条件的各种范围,然后将它们混合和匹配并将它们链接在一起......知道在需要输出之前查询实际上不会运行(“惰性评估”)。
AREL 的语法更接近于标准 sql 语法,而不是之前的 'rails' 语法,因此对于那些熟悉 SQL 的人来说,它更易于使用、识别和维护。
你可以在这里阅读更多关于它的信息。我对 LINQ 不是很熟悉,但我相信 LINQ 有点类似于 Django 的 ORM 使用的查询接口。无论如何,要点是 Active Record 中的查询接口更像是以前的 Django。许多旧的“低级”查询方法已被弃用,并将在以后的版本中删除。