首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails /lib模块和

Rails /lib模块和
EN

Stack Overflow用户
提问于 2009-07-02 08:00:40
回答 3查看 102.3K关注 0票数 85

我正在为open_flash_chart插件编写一个自定义的包装器。它被放在/lib中,并在ApplicationController中作为一个模块加载。

但是,我遇到了一些类层次结构或smth问题。

我可以从任何控制器访问OpenFlashChartLineopen_flash_chart函数

但是,在/lib模块中的类中,它不能工作!

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2011-07-27 22:03:19

在Rails 3中,/lib模块不会自动加载。

这是因为这行代码:

代码语言:javascript
复制
# config.autoload_paths += %W(#{config.root}/extras)

内部config/application.rb已注释。

您可以尝试取消对此行的注释,或者(它对我来说效果更好),保留此注释(以备将来参考),并添加以下两行:

代码语言:javascript
复制
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
票数 87
EN

Stack Overflow用户

发布于 2014-10-16 04:40:02

要在模型和控制器中使用模块lib/my_module.rb

config/application.rb

代码语言:javascript
复制
config.watchable_dirs['lib'] = [:rb]

在你的模型中(类似于你的控制器的想法):

代码语言:javascript
复制
require_dependency 'my_module'

class MyModel < ActiveRecord::Base
  include MyModule

  MyModule.some_method
end

这种方法在http://hakunin.com/rails3-load-paths上有更详细的描述

票数 3
EN

Stack Overflow用户

发布于 2013-02-12 16:11:17

可能的情况是,您希望在应用程序初始化时显式加载lib目录下的文件。

在我的config/application.rb中,我有一个条目,

config.autoload_paths += %W(#{config.root}/lib)

此外,这可能是因为模块名称/层次结构与文件中的不同,或者文件的位置/名称与该层次结构不同,因此也不可能自动加载该文件。因此,当我在config/application.rb的底部添加一个条目时,

require "./lib/file_name_without_extention

它工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1073076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档