Ruby on Rails 4查找订单和限制等价物

Val*_*ris 8 ruby ruby-on-rails ruby-on-rails-4

我需要非常快速地将我的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 )
Run Code Online (Sandbox Code Playgroud)

我没有必要使用4中的条件,只有在哪里,但如何追加:all,order_by和limit to it?什么是正确的语法?

GSP*_*GSP 12

在Arel(https://github.com/rails/arel)中,可以附加所有内容.这里描述了各种条款:http://guides.rubyonrails.org/active_record_querying.html

@news = Article.where(text: 'example').order(:created_at).limit(4)
Run Code Online (Sandbox Code Playgroud)

请注意,在您专门请求数据之前,这将返回一个实际上不会查询数据库的查询子句.


Die*_*zar 7

从旧的ActiveRecord风格:

@news = Article.find(:all, conditions: { text: "example" }, order_by: "created_at", limit: 4 )
Run Code Online (Sandbox Code Playgroud)

到新的:

@news = Article.where(text: "example").order(:created_at).limit(4)
Run Code Online (Sandbox Code Playgroud)