我在这里做一个引擎,它独立工作正常。
当我将其转换为 gem 并将其加载到另一个应用程序中时,我收到许多未定义的错误,这些错误来自我的引擎 gem 的依赖项。
这是宝石规格:
s.add_dependency('paperclip')
s.add_dependency('jquery-rails')
s.add_dependency('rails3-jquery-autocomplete')
s.add_dependency('remotipart')
s.add_dependency('cancan')
在应用程序中,当我进行捆绑安装时,它会列出所有这些依赖项,但当我运行应用程序时,我收到许多未定义的方法错误(例如来自回形针的 has_attachment )。该应用程序似乎没有加载引擎依赖项。
这是默认行为吗?我可以改变它吗?
引擎内的插件也发生了同样的事情。
如果我手动插入这些 gem,在应用程序 Gemfile 中,一切正常......
将它们包含在您的 gemfile 中并运行捆绑安装。然后要求他们在你的lib/<your_engine>/engine.rb file
。不要忘记需要 rubygems
require 'rubygems'
require 'paperclip'
require 'jquery-rails'
require 'rails3-jquery-autocomplete'
require 'remotipart'
require 'cancan'
然后在你的主机应用程序(包含 gem 的应用程序)中运行捆绑安装/捆绑更新(捆绑更新对我来说很有效),然后一切都应该完美运行。您还可以通过在主机应用程序中启动控制台并输入模块名称来测试这一点,例如
Loading development environment (Rails 3.0.3)
irb(main):001:0> Paperclip
=> Paperclip
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)