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

时间:2014-02-17 16:43:34

标签: ruby-on-rails ruby 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 )

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

3 个答案:

答案 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)