基本上我想要这样的东西:
@network = Network.where(:id => current_user.network_ids).first
@posts = Post.where(:user.network.first => @network).order("created_at DESC")
但它基本上不会识别第二行中的列:user
,因为实列是user_id
。我甚至尝试过:
@posts = Post.where('User.find(user_id).network.first =?',network )
没有运气
关于我如何处理这个问题的任何想法。
模特:
class User
has_and_belongs_to_many :network
has_many :posts
end
class Network
has_and_belongs_to_many :user
end
class Post
belongs_to :user
end
我基本上想根据当前用户的网络过滤帖子
答案 0 :(得分:0)
所以我只是通过使用:
来解决问题@posts = Post.where('user_id = ?', @network.user_ids)
答案 1 :(得分:-1)
正如我所看到的,您有posts
属于用户,然后user
有很多networks
,因此您的查询应该是
@posts = Post.where(:user.networks.first => @network).order("created_at DESC")
你所说的是
:user.network.first
表示用户与网络有has_one
的关系