【发布时间】:2012-06-30 15:08:41
【问题描述】:
我正在尝试将我的 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
当我将所有这些都放在一个文件中时,一切都很完美。那么如何正确链接这些文件呢?
【问题讨论】:
标签: ruby-on-rails