安装 iCalendar gem 后出现重复的类名

发布于 2024-12-06 03:55:06 字数 296 浏览 0 评论 0原文

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

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

这是我想要做的示例:

Event.new => ActiveRecord 模型

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

谢谢。

I just tried to deal with iCalendar gem, but it seems iCalendar has a class named Event, and my app also have a class named Event

I guess there is a way to scope one or another class name, but i just don't know how.

Here's an example of what i'd like to do :

Event.new => ActiveRecord Model

Icalendar::Event.new => Icalendar Event class

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾城月光淡如水﹏ 2024-12-13 03:55:06

想要将 iCalendar gem 包装在模块中,然后从 Icalendar::CalEvent 等实例化吗?

require 'icalendar'

module Icalendar
  CalEvent = Event
end

顺便说一句:您可以只使用名称 Event,但会出现有关重新分配给常量的警告。

Hoe about wrapping up the iCalendar gem in a module and then instantiating from e.g. Icalendar::CalEvent or something?

require 'icalendar'

module Icalendar
  CalEvent = Event
end

BTW: you could just use the name Event, but there will be a warning about reassigning to a constant.

绝不服输 2024-12-13 03:55:06

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

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

module MyStuff
  class Event
  end
end

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

Force ruby to look for top-level class definitions when accessing your model, via ::Event.new. Including :: before class name signifies that class is not in any module, as opposed to Icalendar::Event that is in Icalendar module.

Or, if iCalendar does not provide the namespace, you can do it for your class, defining it as

module MyStuff
  class Event
  end
end

and using MyStuff::Event for your model, and ::Event for iCal one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文