Проблема пространства имен Ruby on Rails с iCalendar

Я разрабатываю веб-приложение календаря для своей компании, используя ruby ​​1.8.7 и rails 2.3.8. естественно, есть модели RoR с именами «Календарь» и «Событие».

чтобы отправлять события календаря в другие приложения (Microsoft Outlook и Lotus Notes), я интегрируюсь со стандартной и рубиновой библиотекой iCalendar. http://icalendar.rubyforge.org/, но эта библиотека содержит классы с именами "Календарь" и "Событие"

теперь мое приложение получает множество ошибок, подобных этой, когда оно пытается использовать поиск активной записи - @calendar = Calendar.find(id) :

NoMethodError (неопределенный метод find' for **Icalendar::Calendar:Class**): app/controllers/foos_controller.rb:184:insendEmailDialogForm' C:/Ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'

есть ли способ сделать:

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

  or 

@calendar = имя_приложения.Calendar.find(id)

  or

@calendar = this.Calendar.find(id)

лениво пытаясь избежать использования модуля для указания пространства имен или переименования моих моделей.


person Norbert Ryan    schedule 04.11.2010    source источник
comment
Переименовать ваши модели может быть проще всего. В противном случае, я боюсь, вы столкнетесь с множеством проблем позже.   -  person Arsen7    schedule 04.11.2010


Ответы (1)


Я думаю, у тебя где-то есть include Icalendar. Попробуйте вытащить это и сделать вызовы в эту библиотеку, используя Icalendar::Calendar.new(...). Это должно позаботиться о конфликтах пространств имен.

person Brian    schedule 04.11.2010
comment
закомментировал включение #include Icalendar, а затем @calendar = Icalendar::Calendar.new - person Norbert Ryan; 04.11.2010