Rails,Paginate与条件中的陈述或陈述

时间:2012-05-01 07:45:39

标签: ruby-on-rails-3.1 will-paginate

所以基本上我有两种类型的状态'我想显示两个属性status_id“2”和status_id“5”,属性永远不会有两个状态'所以我知道我不想使用& ;在这里,我希望能够拥有或声明,但我不知道如何去做。这就是我必须只显示status_id“2”并且它工作得很好。

@properties = Property.order("updated_at DESC").paginate(:per_page => 20, :page => params[:page], :conditions => { :status_id => '2' })

在我的模型中,我的范围看起来如下,不确定我是否可以这样做......

scope :for_sale, joins(:status).where(:statuses => { :current => 'For Sale'})
scope :market_listings, joins(:status).where(:statuses => { :current => 'Market Listing'})

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

而不是在:conditions调用中使用paginate,IMO会更清晰,更容易使用where,如下所示:

@properties = Property.where('status_id = 2 or status_id = 5').order("updated_at DESC").paginate(:per_page => 20, :page => params[:page])

这也是可能的:

@properties = Property.order("updated_at DESC").paginate(:per_page => 20, :page => params[:page], :conditions => 'status_id = 2 or status_id = 5')

甚至更简单:

@properties = Property.order("updated_at DESC").paginate(:per_page => 20, :page => params[:page], :conditions => { :status_id => [2,5] })