2016-12-17 3 views
0

私はこのようになりますActiveRecordの関係を生成したい:どのようにしてActiveRecord関係を生成し、コレクション内に特定のオブジェクトを含めることができますか?

@profiles = Profile.published.order("RANDOM()").limit(8) + Profile.where(demo_linked: true) 

問題上記ではそれが私はしたくないものです配列を返すということです。

私はActiveRecordの関係であることを望みます。

思考?

答えて

0

私は最終的には、以下でそれを得た:

@selected_profile = Profile.published.where(demo_linked: true) 
    @random_profiles = Profile.published.order("RANDOM()").limit(8).where.not(id: @selected_profile.pluck(:id)) 
    @profiles = @random_profiles + @selected_profile 
0

guidesで説明したように:

random_published_profiles = Profile.published.order("RANDOM()").limit(8) 
demo_linked_profiles = Profile.where(demo_linked: true) 

all_profiles = random_published_profiles.merge(demo_linked_profiles) 
+0

私は似たようなを試してみました....しかし、何が起こるかは、私はちょうどの交差点を取得するということです両方のクエリ...合計ではありません。正解は「9」でなければならないが、「[195] pry(main)> all_profiles.count => 1」となります。 – marcamillion

関連する問題