我对Ruby on Rails比较陌生,但我差不多完成了Lynda的在线课程。我被困在14-5“使用positionMove模块”。本教程在Rails 3中,而我的版本是Rails 4.我有解决方案代码,但它对我不起作用。我把我的文件position_mover.rb放在lib目录中。然后在我的主题模型中,我需要并包含这样的模块:
require 'lib/position_mover'
class Subject < ActiveRecord::Base
include PositionMover
...
end
我在Subject控制器中使用了此模型中的方法,就像教师一样。但是,当我在Subjects索引页面上运行我的应用程序时,我收到错误:
cannot load such file -- lib/position_mover
app/models/page.rb:1:in `<top (required)>'
app/views/subjects/list.html.erb:23:in `block in_app_views_subjects_list_html_erb__420960863_60005508'
app/views/subjects/list.html.erb:18:in `_app_views_subjects_list_html_erb__420960863_60005508'
app/controllers/subjects_controller.rb:9:in `index'
我尝试了许多在线发现的不同方法,例如将其添加到类定义(Ruby on Rails 4.0 - Loading and using a module)或将其移动到不同的目录并指定路径。如何在Rails 4中实现相同的结果?我究竟做错了什么?非常感谢任何帮助。
答案 0 :(得分:1)
require "#{Rails.root}/lib/position_mover"
或
require_relative 'lib/position_mover'
您也可以自动加载lib文件。
config/application.rb
中的:
config.autoload_paths << Rails.root.join('lib')