我正在使用predictor宝石。我在initializers/predictor.rb中初始化了推荐器:

require 'course_recommender'

recommender = CourseRecommender.new

# Add records to the recommender.
recommender.add_to_matrix!(:topics, "topic-1", "course-1")
recommender.add_to_matrix!(:topics, "topic-2", "course-1")
recommender.add_to_matrix!(:topics, "topic-1", "course-2")


然后我想像这样在CourseController中使用推荐器:

class CourseController < ApplicationController
  def show
    # I would like to access the recommender here.
    similiar_courses = recommender.similarities_for("course-1")
  end
end


如何将recommender设置为应用程序控制器变量,以便可以在控制器中访问它?

最佳答案

在您的initilizers/predictor.rb中,您不应将推荐人定义为:

recommender = CourseRecommender.new


但作为:


:: Recommender = CourseRecommender.new


这样,您可以在应用程序的整个范围内定义一个常量,而不是定义局部变量。在初始化程序和控制器中,您可以使用Recommender对其进行访问。

07-26 03:36