2013-06-13 3 views
0

У меня есть встроенное расширение Ruby для C/Objective-C, и теперь я хотел бы использовать его в веб-приложении Ruby on Rails, но каждый раз, когда я пытаюсь его использовать, WEBrick вылетает ! Что у меня есть:Использование Ruby Extension (.bundle) в Rails-приложениях

  1. У меня есть класс Ruby: MyRubyObject, привязанный к классу C (MyExtension).
  2. MyRubyObject был определен одним способом: myRubyMethod, привязанным к функции в моем классе C, MyExtension: myextensionmethod, который просто возвращает строку.
  3. myextensionmethod essentailly вызывает другую библиотеку, которая выполняет загрузку работы (несколько потоков, а что нет), но в конце концов возвращает строку
  4. после компиляции все, что я получаю файл MyRubyObject.bundle. Используя IRB, я могу:

    требуют '' ./MyRubyObject р = MyRubyObject.new p.myRubyMethod => "Результат!"

  5. Это все работает абсолютно нормально, и теперь я хочу, чтобы использовать его в приложении RoR

  6. Я поставил MyRubyObject.bundle в Lib в моем RoR приложение, а затем из класса контроллера я делаю требует ./lib /MyRubyObject.bundle и WEBrick вылетает !!!!

Любая помощь была бы принята с благодарностью !!!

Приветствия

+0

Как происходит крах Webrick? – iltempo

+0

Веб-кирпич повышается как обычно, а затем, когда я посещаю страницу, загружающую мой контроллер, я просто получаю это на выходе: [1] 3316 трассировочные рельсы –

ответ

0

Я нашел решение, где отсюда: ruby-ldap gem not work in rails3 app, but work in rails console чего я

  • Поставьте 'требуется File.expand_path (' ../../ Библиотека/MyRubyObject '__FILE__)' в файле config/environment.rb (после 'require File.expand_path (' ../ application ', __FILE__)')

  • Тогда в моем файле контроллера я просто поместил запрос «MyRubyObject» и смог затем создать экземпляр обычно: p = MyRubyObject.new ...

Так что я полагаю, это был связан вопрос для WEBrick загрузки вещей в неправильном порядке, основанном на ссылку выше, но я буду следить за этим, как мы будем двигаться сервера, скорее всего, и эта проблема может появиться это уродливые головы снова!

Надеюсь, что это поможет другим! Спасибо

Смежные вопросы