Ruby on rails 安装iCalendar gem后重复类名

Ruby on rails 安装iCalendar gem后重复类名,ruby-on-rails,ruby,icalendar,Ruby On Rails,Ruby,Icalendar,我刚刚尝试处理iCalendar gem,但iCalendar似乎有一个名为事件的类,我的应用程序也有一个名为事件的类 我想有一种方法可以定义一个或另一个类名,但我不知道如何定义 下面是我想做的一个例子: Event.new=>ActiveRecord模型 Icalendar::Event.new=>Icalendar事件类 谢谢。如何将iCalendargem包装在一个模块中,然后从中实例化,例如iCalendar::CalEvent require 'icalendar' module I

我刚刚尝试处理iCalendar gem,但iCalendar似乎有一个名为
事件
的类,我的应用程序也有一个名为
事件
的类

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

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

Event.new
=>ActiveRecord模型

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


谢谢。

如何将
iCalendar
gem包装在一个模块中,然后从中实例化,例如
iCalendar::CalEvent

require 'icalendar'

module Icalendar
  CalEvent = Event
end

顺便说一句:您可以只使用名称
事件
,但是会有一个关于重新指定常数的警告。

如何将
iCalendar
gem包装在一个模块中,然后从中实例化,例如
iCalendar::CalEvent

require 'icalendar'

module Icalendar
  CalEvent = Event
end

顺便说一句:您可以只使用名称
Event
,但是会有一个关于重新指定常数的警告。

在访问模型时,通过
::Event.new
强制ruby查找顶级类定义。include::before class name表示类不在任何模块中,与
Icalendar
模块中的
Icalendar::Event
相反

或者,如果iCalendar不提供名称空间,可以为类提供名称空间,将其定义为

module MyStuff
  class Event
  end
end

对于您的模型使用
MyStuff::Event
,对于iCal one使用
::Event

在访问您的模型时,通过
::Event.new
强制ruby查找顶级类定义。include::before class name表示类不在任何模块中,与
Icalendar
模块中的
Icalendar::Event
相反

或者,如果iCalendar不提供名称空间,可以为类提供名称空间,将其定义为

module MyStuff
  class Event
  end
end

对您的模型使用
MyStuff::Event
,对iCal one使用
::Event

谢谢!它解决了我的问题。我现在可以通过
Event
访问我的AR模型,通过
iCalendar::Event
访问iCalendar类,就像我想要的那样!谢谢它解决了我的问题。我现在可以通过
Event
访问我的AR模型,通过
iCalendar::Event
访问iCalendar类,就像我想要的那样!