Ruby on rails 使用用户属性的Ruby on Rails where语句
所以基本上我想要这样的东西:Ruby on rails 使用用户属性的Ruby on Rails where语句,ruby-on-rails,Ruby On Rails,所以基本上我想要这样的东西: @network = Network.where(:id => current_user.network_ids).first @posts = Post.where(:user.network.first => @network).order("created_at DESC") 但它基本上无法识别第二行中的列:user,因为真正的列是user\u id。我甚至试过: @posts = Post.where('User.find(user_id).n
@network = Network.where(:id => current_user.network_ids).first
@posts = Post.where(:user.network.first => @network).order("created_at DESC")
但它基本上无法识别第二行中的列:user
,因为真正的列是user\u 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
我基本上想根据当前用户的网络过滤帖子,正如我所看到的,你有属于某个用户的
帖子,然后用户有许多网络,因此你的查询应该是
@posts = Post.where(:user.networks.first => @network).order("created_at DESC")
你的电话是
:user.network.first
哪个状态的用户与网络有一个关系,所以我使用以下方法简单地解决了这个问题:
@posts = Post.where('user_id = ?', @network.user_ids)
一般来说,你能告诉我你想做什么吗?你的模型是如何连接的。发布你的模型代码。@ShamsulHaque模型代码posted@SebastiánPalma模型代码postedWell,考虑到您的模型或原始问题,所有这些都没有意义。