如何从条件中排除数组中的值

时间:2016-06-23 03:43:50

标签: ruby-on-rails ruby-on-rails-4

我收集了来自current_user的帖子和其他'关注的'用户显示在列表中。可以在提交时将帖子标记为匿名,这会隐藏海报名称(在posts数据库中有一个“1”或“0”的

在我的帖子集中,我想显示current_user的匿名帖子,但不包括其他用户的匿名帖子。

这是我在控制器中的内容:

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

问题在于它排除了我列表中的所有匿名帖子。

有什么想法吗?

更新

这是我的Feed方法:

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

怎么样:

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