2016-06-23 8 views
1

私は、current_userと他の「フォロー」されたユーザーの一覧をリストに表示しています。ポスト名を非表示にした投稿で匿名のマークを付けることができます(投稿データベースに「1または0」の「anon」列があります)条件付きの配列から値を除外する方法

私の投稿集には、current_user他のユーザーからの匿名の投稿を除外します。

は、ここで私は私のコントローラを持っているものです。

@feed = current_user.feed.where('anon != ?', '1') 

問題は、それが私のリストにすべての匿名の投稿を除外しています。

アイデア?

更新:ここで

は私の給紙方法である:

def feed 
    following_other_ids = "SELECT followable_id FROM follows 
        WHERE followable_type = 'Other' AND follower_id = :user_id" 
    following_user_ids = "SELECT followable_id FROM follows 
        WHERE followable_type = 'User' AND follower_id = :user_id" 
    Post.where("other_id IN (#{following_other_ids}) 
        OR user_id IN (#{following_user_ids}) 
        OR user_id = :user_id", user_id: id) 
end 
+0

両方の条件... http://stackoverflow.com/questions/17192829/does-rails-4-have-support-for-or-queries –

+0

それは働いた!ありがとうヒープ:) – Jeremy

答えて

0

何について:あなたが満足するためにORを使用する必要があるとしているようですね

@feed = current_user.posts.where(anon: 0) 
+0

幸運。 nilエラーを出力します。 – Jeremy

+0

エラーについて詳しく説明できますか? – Nathan

+0

'nil'はActiveModel互換オブジェクトではありません。 to_partial_pathを実装する必要があります。 – Jeremy

1
@feed = current_user.feed.where('anon != ? OR user_id = ?', '1', current_user) 
関連する問題