2010-11-04 46 views
1

我正在为我的公司开发一个日历webapp,使用ruby 1.8.7和 rails 2.3.8。自然有RoR模型命名“日历”和“事件”。Ruby on Rails命名空间与iCalendar问题

才能发送我与iCalendar标准&红宝石 库集成日历事件的其他应用程序(如Microsoft Outlook & 的Lotus Notes)。 http://icalendar.rubyforge.org/ 但这个库包含类调用时,它会尝试使用 ActiveRecord的发现“日历”和 “事件”

现在这个样子我的应用程序越来越洛塔错误 - @calendar = Calendar.find(ID):

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

是有一些方法来做到:

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

or 

@calendar = appname.Calendar.find(ID)

or 

@calendar = this.Calendar.find(ID)

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

+0

重命名您的模型可能是最容易做的事情。否则,恐怕你以后会遇到很多问题。 – Arsen7 2010-11-04 15:36:05

回答

2

我在想你在某个地方有一个include Icalendar。尝试拔出&使用Icalendar::Calendar.new(...)打电话给该图书馆。这应该处理命名空间冲突。

+0

我认为*它做到了! – 2010-11-04 17:26:52

+0

注释掉了include #include Icalendar,然后@calendar = Icalendar :: Calendar.new – 2010-11-04 17:28:25

+0

正确。希望对你有效。 – Brian 2010-11-04 17:35:40