2016-03-28 2 views
0

クエリの使用に含まれるRails 4 applicationを使用しています。Rails 4のインクルードクエリでOR条件にエラーが発生しました

Query: @courses = Course.includes(:translations).unpublished_status 

ここで、unpublished_statusは、モデルのスコープである。 (下記参照):

scope :unpublished, -> { where(published: false) } 
scope :status, -> { where.not(status: 'active') } 
scope :unpublished_status, -> { unpublished.where.or(status)} 

私は実行するコードは、エラーの下になった:実際の問題は見つかりませんでしたされ

NoMethodError at /api/v1/unpublished_courses 
============================================ 

> undefined method `or' for # 
<Globalize::ActiveRecord::QueryMethods::WhereChain:0x007fe05dbc70d8> 

。いずれにしてもそれについてのアイデアがあります。

おかげ

+0

'where.or'はRails 4では利用できません。' scope:unpublished_status、 - > {未公開||ステータス} ' –

答えて

1

where.or is available only in rails 5 you can check this link .

TO 'OR' を行うことができますスコープ:

scope :unpublished_status, -> { unpublished || status} 
    **OR** 
Course.where('published = ? OR status != ?', false, 'active') 
0
undefined method `or' for # 
<Globalize::ActiveRecord::QueryMethods::WhereChain:0x007fe05dbc70d8> 

それが言うようにActiveRecord::QueryMethods::WhereChain:

ためundefined methodor methodが利用できないことを意味します。このor_scopes.rbを修正するには、範囲をORにすることができます。

これはあなたを助けますか?

関連する問題