【问题标题】:Accessing class objects across rails application跨 Rails 应用程序访问类对象
【发布时间】:2012-11-10 11:27:40
【问题描述】:

如果这个问题已经在某个地方得到回答,请原谅我,因为我找不到它。

我正在尝试在 lib 目录下包含我在 Rails 3 中编写的类,以便我的控制器可以访问这些方法。

这个类在这个目录下,具体来说是:lib/assets,它叫 Ducksboard。

我正在尝试将其包含在我的 application_controller 中:

class ApplicationController < ActionController::Base
  include Ducksboard

但我不断收到这样的路由错误

未初始化的常量 ApplicationController::Ducksboard

我什至更新了应用程序配置文件,以便它在库中搜索资产

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

有没有更好的方法来创建类并在我的应用程序中访问它们?这似乎不起作用。

谢谢!

【问题讨论】:

  • 为什么要标记资产管道?

标签: ruby-on-rails ruby asset-pipeline


【解决方案1】:

为什么要把它放在 lib/assets 中?您知道 Rails 中使用哪些资产,对吧?

无论如何,你需要在 config/initializers 中添加一个初始化器

require_dependency 'assets/ducksboard'

【讨论】:

  • 我正在阅读这篇文章,在资产组织下:guides.rubyonrails.org/asset_pipeline.html,所以我可能误解了它。鉴于这是错误的设计,我应该在 Rails 应用程序的哪个位置放置新类?
  • 将类/文件放入lib
  • 没错。把它放在那里并根据我的回答添加一个初始化程序。执行要求时,not 将 lib/ 添加到路径(仅提供 lib/ 之后的路径)。例如。当你在 lib/ducksboard.rb 中有 require_dependency 'ducksboard' 时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多