0

複数の条件で一致するレコードの配列をフィルタリングしようとしていますが、それを理解できないようです。さまざまなことを試して、すべてをグーグル検索しましたが、何もありません...コードは次のとおりです。

if @post.last_post?
  @recommendations = @course.recommendations_for_subscriber(subscriber, category, language).first(3)
end

そしてヘルパーメソッド

def recommendations_for_subscriber subscriber, category, language
  course_ids = subscriber.courses.pluck(:id)
  recommendations.reject { |c| course_ids.include? c.id }
end

私がやろうとしているのは、カテゴリと言語を条件として渡し、同じ条件が設定された結果のみを取得することです。「.where」は、配列ではうまく機能せず、拒否への追加として渡すことができないため、機能しません。私たちがお互いに出くわした場合、どんなアイデアでも大歓迎で、ケーキで報われるでしょう!

4

1 に答える 1

0

これで問題が解決すると思います:

def recommendations_for_subscriber subscriber, category, language
  Recommendation.where('courses.id NOT IN(?)', subscriber.courses.pluck(:id))
end
于 2015-09-27T16:54:35.470 に答える