我只是试图处理iCalendar gem,但似乎iCalendar有一个名为Event
的类,我的应用程序也有一个名为Event
的类
我想有一种方法可以限定一个或另一个类名,但我只是不知道如何。
以下是我想做的一个例子:
Event.new
=> ActiveRecord模型
Icalendar::Event.new
=> Icalendar事件类
谢谢。
答案 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
。