如何使用非模型方法在rails控制台中手动测试查询?

时间:2017-05-30 18:13:35

标签: ruby-on-rails activerecord

这是我的问题: 有一个movie_buff文件夹,用于生成查询的各种方法,它们不能在任何类下工作。我尝试过像Actor.first.vanity_projects或者Movie.first.vanity_projects这样的方法来测试这些方法,但它们都给了我像未定义的方法`vanity_projects'为#。 以下是我为该方法编写的内容:

def vanity_projects
 Movie
  .select("movies.id, movies.title, actors.name")
  .joins(:actors)
  .where("actors.id = director_id")
  .where("castings.ord = 1")
end

Screenshot for directories

我如何在控制台中测试这些方法?

1 个答案:

答案 0 :(得分:0)

此vanity_project方法必须返回的结果类型似乎不是对象方法。尝试将它定义为类方法,在Movie或Actor类中使用self(如果您愿意,可以同时使用self,但不建议使用)。像这样:

class Movie
  def self.vanity_projects
    #The Query
  end
end

然后从控制台中调用它:

Movie.vanity_projects #=> Returns your query's result.