1

したがって、基本的には 2 種類のステータスがあり、status_id が「2」と status_id が「5」の両方のプロパティを表示したいのですが、プロパティに 2 つのステータスがあることはありません。 and or ステートメントを使用できるようにしたいのですが、それを行う方法がわかりません。これは、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'})

任意の助けをいただければ幸いです。

4

1 に答える 1

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] })
于 2012-05-01T07:56:00.047 に答える