我需要非常快速地将我的app控制器更新到rails 4,但我不知道如何在新的rails 4风格中编写所有这一行:使用条件和限制的order_by,在web中搜索快速,以及所有部分在一起 - 没有找到。我怎么能把它从rails 3翻译成rails 4?
在控制器中我有
@news = Article.find(:all, conditions: { text: "example" }, order_by: "created_at", limit: 4 )
我没有必要使用4中的条件,只有在哪里,但如何追加:all,order_by和limit to it?什么是正确的语法?
答案 0 :(得分:11)
在Arel(https://github.com/rails/arel)中,可以追加所有内容。这里描述了各种条款:http://guides.rubyonrails.org/active_record_querying.html
@news = Article.where(text: 'example').order(:created_at).limit(4)
请注意,在您专门请求数据之前,这将返回一个实际上不会查询数据库的查询子句。
答案 1 :(得分:7)
从旧的ActiveRecord风格:
@news = Article.find(:all, conditions: { text: "example" }, order_by: "created_at", limit: 4 )
到新的:
@news = Article.where(text: "example").order(:created_at).limit(4)
答案 2 :(得分:2)
我认为这可能会成功:
@news = Article.where(text: 'example').order(:created_at).limit(4)