gpt4 book ai didi

objective-c - 在 Rails 应用程序中使用 Ruby 扩展 (.bundle)

转载 作者:行者123 更新时间:2023-11-30 17:50:44 24 4
gpt4 key购买 nike

我已经为 C/Objective-C 构建了一个 Ruby 扩展,现在想在 Ruby on Rails Web 应用程序中使用它,但每次我尝试要求它时,WEBrick 都会崩溃!我所拥有的是:

  1. 我有一个 Ruby 类:MyRubyObject,它与 C 类 (MyExtension) 相关联。
  2. MyRubyObject 已使用一种方法进行定义:myRubyMethod,它与我的 C 类中的一个函数相关联,MyExtension:myextensionmethod 只返回一个字符串。
  3. myextensionmethod 本质上调用另一个库,该库执行大量工作(多线程等等),但最终返回一个字符串
  4. 编译完所有内容后,我得到一个 MyRubyObject.bundle 文件。使用 IRB,我可以:

    需要“./MyRubyObject”p = MyRubyObject.newp.myRubyMethod=>“结果!”

  5. 这一切都工作得很好,现在我想在 RoR 应用程序中使用它

  6. 我将 MyRubyObject.bundle 放入 RoR 应用程序的 lib 中,然后从 Controller 类中执行 require ./lib/MyRubyObject.bundle ,然后 WEBrick 崩溃了!!!!

任何帮助将不胜感激!!!

干杯

最佳答案

我从这里找到了一个解决方案:ruby-ldap gem not work in rails3 app, but work in rails console由此我

  • 将“require File.expand_path('../../lib/MyRubyObject', __FILE__)”放入 config/environment.rb 文件中(在“require File.expand_path('../application'”之后) , __FILE__)')

  • 然后在我的 Controller 文件中,我只需放置一个 require 'MyRubyObject',然后就能够正常实例化:p = MyRubyObject.new ...

所以我认为这是一个与 WEBrick 根据上面的链接以错误的顺序加载内容相关的问题,但我会密切关注这个问题,因为我们很可能会移动服务器,这个问题可能会再次弹出它的丑陋的头。 !

希望这对其他人有帮助!谢谢

关于objective-c - 在 Rails 应用程序中使用 Ruby 扩展 (.bundle),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17093820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com