我正在尝试将我的 Rails 项目的一部分提取到我的 lib 目录中,但我无法弄清楚如何正确链接我的文件。我的目录结构如下所示:
lib/
eventable/
calendar.rb
helpers.rb
# Rest of rails directories/files
我需要事件目录config/application.rb
:
config.autoload_paths += %W(#{config.root}/lib #{config.root}/lib/eventable)
我的助手和日历 rb 文件:
# helpers.rb
module Eventable
module Helpers
def calendar_for...
Calendar.new...
end
end
end
# calendar.rb
module Eventable
class Calendar
# methods defined here
end
end
然后,我将 Eventable::Helpers 模块混合到常规的 Rails 助手中,以便calendar_for
在我的视图中使用:
ActionView::Base.send :include, Eventable::Helpers
这最后一步似乎工作正常。但是,当我转到使用此助手的视图时,我得到:
uninitialized constant Eventable::Helpers::Calendar
如果我更改我的助手以便它尝试访问Eventable::Calendar.new
,那么我会得到:
uninitialized constant Eventable::Calendar
当我将所有这些都放在一个文件中时,一切都很完美。那么如何正确链接这些文件呢?