【问题标题】:Ruby on Rails namespace issue with iCalendariCalendar 的 Ruby on Rails 命名空间问题
【发布时间】:2011-05-05 03:01:28
【问题描述】:

我正在为我的公司使用 ruby​​ 1.8.7 和 导轨 2.3.8。自然有名为“Calendar”和“Event”的RoR模型。

为了将日历事件发送到其他应用程序(Microsoft Outlook 和 lotus notes)我正在与 iCalendar 标准和 ruby​​ 集成 图书馆。 http://icalendar.rubyforge.org/ 但是这个库包含名为“日历”的类和 “事件”

现在我的应用程序在尝试使用时遇到类似这样的错误 activerecord 查找 - @calendar = Calendar.find(id) :

NoMethodError (未定义方法find' for **Icalendar::Calendar:Class**): app/controllers/foos_controller.rb:184:insendEmailDialogForm' C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `服务'

有什么办法吗:

@calendar = ActiveRecord::Base.Calendar.find(id) ??

  or 

@calendar = appname.Calendar.find(id)

  or

@calendar = this.Calendar.find(id)

懒惰地尝试避免使用模块来指定命名空间或重命名我的 模型。

【问题讨论】:

  • 重命名模型可能是最简单的事情。否则以后恐怕会遇到很多问题。

标签: ruby-on-rails ruby namespaces conflict icalendar


【解决方案1】:

我想你在某处有一个include Icalendar。尝试使用Icalendar::Calendar.new(...) 将其拉出并调用该库。这应该处理命名空间冲突。

【讨论】:

  • 注释掉了 include #include Icalendar 然后@calendar = Icalendar::Calendar.new
猜你喜欢
  • 1970-01-01
  • 2012-03-11
  • 2013-10-09
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多