2016-03-28 10 views
0

私はアクティブなレコードを3つのand条件(必須)と2つのor条件で書きたいと思っています。Rubyに "and"と "or"条件付きアクティブレコードを書くには

@properties = Property.where(category_id: 2). 
         where(status: 3). 
         where(p_type: 'sell')` 

これはand条件でクエリを示しています

は、私がこれを書きました。

最後に2つのor条件を含める必要があります。

それは、これを試してみましたが、エラーました:

@properties = Property.where(category_id: 2). 
         where(status: 3). 
         where(p_type: 'sell'). 
         or(location: @location). 
         or(featured: '1)` 

私はそれをどのように行うのですか?

+2

あなたは、この '@propertiesは= Property.where(CATEGORY_ID:2、状態:3)試すことができます.where( "???(P_TYPE = OR場所= OR特集=)"、 '販売' を、@場所、 '1') ' –

+0

ありがとうございます。このコードは動作しています:) – SreRoR

+2

'where()。()'メソッドチェーンはRails 5で利用できます。[here](https://github.com/rails/rails/pull/16052/)に追加されました。 。 – Drenmi

答えて

0

これを試すことができます。

@properties = Property.where(category_id: 2, status: 3).where("(p_type = ? OR location = ? OR featured = ?)", 'sell', @location, '1') 
1
@properties=Property.where("(category_id = ? AND status = ?) OR (location = ? OR featured = ?)", "2", "3", @location, "1") 
+0

このコードも動作します、ありがとう@Muhammad – SreRoR

関連する問題