Ruby on rails 是否可以使用as_json使用当前_用户?

Ruby on rails 是否可以使用as_json使用当前_用户?,ruby-on-rails,ruby,ruby-on-rails-4,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 4,Ruby On Rails 5,我有三个模型:用户、喜欢和帖子。我正在使用as_json,想看看用户是否喜欢一篇文章。在post.rb中,当我做self.likes时,它会显示该帖子的所有喜欢;但是,我只想显示来自当前用户的一个like(如果存在)self.likes.user似乎不起作用。使用as_json还有其他方法可以实现这一点吗?您可以使用 post.likes.where(:user_id => current_user.id) 将结果限制为一个类似 post.likes.where(:user_id =&g

我有三个模型:用户、喜欢和帖子。我正在使用as_json,想看看用户是否喜欢一篇文章。在
post.rb
中,当我做
self.likes
时,它会显示该帖子的所有喜欢;但是,我只想显示来自当前用户的一个like(如果存在)
self.likes.user
似乎不起作用。使用as_json还有其他方法可以实现这一点吗?

您可以使用

post.likes.where(:user_id => current_user.id)
将结果限制为一个类似

post.likes.where(:user_id => current_user.id).limit(1)

注意:确保在模型中访问对象时,当前用户对象可用。如果不可用,请将其作为方法参数传递。

您确实应该显示一些代码(您的模型及其关联定义将是一个很好的起点)。否则,很难提供帮助。模型没有关于当前用户的任何信息,因为当前用户是单个请求上下文中的一个概念,因此是控制器域。如果要在模型方法中使用当前用户,则必须将其从控制器传递到模型。您对您试图实现的目标有点模糊,并且在没有看到实际代码(尤其是关联)的情况下,这个问题很难回答。你能详细说明一下吗?谢谢,它成功了。我使用了
self.likes.where(:user\u id=>self.user)