gpt4 book ai didi

ruby-on-rails - 在 lib 目录中组织文件

转载 作者:行者123 更新时间:2023-12-04 18:18:17 25 4
gpt4 key购买 nike

我正在尝试将我的 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

这最后一步似乎工作正常。但是,当我转到使用此助手的 View 时,我得到:
uninitialized constant Eventable::Helpers::Calendar

如果我更改我的助手以便它尝试访问 Eventable::Calendar.new相反,我得到:
uninitialized constant Eventable::Calendar

当我将所有这些都放在一个文件中时,一切都很完美。那么如何正确链接这些文件呢?

最佳答案

看起来你需要一个加载器类型的文件来告诉 Rails 在哪里可以找到 Eventable 的代码。模块。

尝试添加 lib/eventable.rb和:

module Eventable
autoload :Calendar, 'eventable/calendar'
autoload :Helpers, 'eventable/helpers'
end

如果您有加载程序文件,则不需要更改加载路径。

关于ruby-on-rails - 在 lib 目录中组织文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com