Ruby on rails Rails:如何通过多种方式拨打优雅的电话

Ruby on rails Rails:如何通过多种方式拨打优雅的电话,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个用户模型,一个电影模型和一个电影模型。用户通过Movierating观看许多电影,反之亦然 电影分级具有用户id、电影id,并且希望观看。想要看到的是一个布尔值。有没有一种简单的方法可以获取用户想要看的电影列表 user.movies.where(希望看到:true)为我获取AssociationRelation对象user.movie\u ratings.where(wants\u-to\u-see:true)为我获取一个MovieRating对象列表,然后我需要找到关联的电影 实现这

我有一个用户模型,一个电影模型和一个电影模型。用户通过Movierating观看许多电影,反之亦然

电影分级具有用户id、电影id,并且希望观看。想要看到的是一个布尔值。有没有一种简单的方法可以获取用户想要看的电影列表

user.movies.where(希望看到:true)
为我获取AssociationRelation对象
user.movie\u ratings.where(wants\u-to\u-see:true)
为我获取一个MovieRating对象列表,然后我需要找到关联的电影


实现这一目标的最佳方式是什么?

您可以通过几种方式实现这一目标。您可以创建一个函数,返回用户想要的电影

class User < ActiveRecord::Base
  has_many :movie_ratings
  has_many :movies, through: :movie_ratings

  def wants_to_see_movies
    self.movies.where(movie_ratings: { wants_to_see: true } )
  end
end
坦率地说,我不确定哪种解决方案更好/更值得推荐,但在任何一种情况下,当您想要获得用户想要观看的所有电影时

@movies = @user.wants_to_see_movies

太棒了,谢谢!我不确定我是否在我的关联中遗漏了什么。没问题!我很乐意帮忙。
@movies = @user.wants_to_see_movies