安装iCalendar gem后重复的类名

时间:2011-09-23 09:33:46

标签: ruby-on-rails ruby icalendar

我只是试图处理iCalendar gem,但似乎iCalendar有一个名为Event的类,我的应用程序也有一个名为Event的类

我想有一种方法可以限定一个或另一个类名,但我只是不知道如何。

以下是我想做的一个例子:

Event.new => ActiveRecord模型

Icalendar::Event.new => Icalendar事件类

谢谢。

2 个答案:

答案 0 :(得分:1)

关于在模块中包装iCalendar gem然后从例如实例化实例化Icalendar::CalEvent还是什么?

require 'icalendar'

module Icalendar
  CalEvent = Event
end

BTW:您可以使用名称Event,但会有关于重新分配常量的警告。

答案 1 :(得分:0)

通过::Event.new强制ruby在访问模型时查找顶级类定义。在类名之前包含::表示该类不在任何模块中,而不是Icalendar::Event模块中的Icalendar

或者,如果iCalendar没有提供命名空间,您可以为您的类执行此操作,将其定义为

module MyStuff
  class Event
  end
end

并为您的模型使用MyStuff::Event,为iCal使用::Event