我正在尝试使用acts_as_audited插件。我应该将它安装为gem(将其放在environment.rb中)还是插件?
一个优于另一个的优点是什么。后来我计划将这个应用程序放在客户端服务器上以进行永久托管。所以我最好把它作为宝石吗?如果它是作为一个宝石...当我把应用程序放在客户端服务器上..我不会再得到这个插件吗?
答案 0 :(得分:1)
通常,gems是一种更强大且受支持的方式,可为您的应用添加功能。 Web上有一个完整的基础架构,并内置到Rails中,可以使用不适用于插件的宝石。
例如,如果您使用宝石,您将获得处理宝石的整套Rake任务。
在项目根目录中,运行...
$ rake -T gem
(in /Users/username/project/someproject)
rake gems # List the gems that this rails application depends on
rake gems:build # Build any native extensions for unpacked gems
rake gems:build:force # Force the build of all gems
rake gems:install # Installs all required gems.
rake gems:refresh_specs # Regenerate gem specifications in correct format.
rake gems:unpack # Unpacks all required gems into vendor/gems.
rake gems:unpack:dependencies # Unpacks all required gems and their dependencies into vendor/gems.
rake rails:freeze:gems # Lock this application to the current gems (by unpacking them into vendor/rails)
您还可以在environment.rb
文件中指定gem依赖项。这使您能够使用...自动安装它们。
$ rake gems install
宝石优于插件的另一个优点是,在系统级别,您可以使用gem
实用程序来维护宝石,以便更轻松。
如果它是作为宝石...当我把它 在客户端服务器上的应用程序..我不会 必须再次获得这个插件吗?
您可以将宝石“冻结”到您的应用中并将其作为应用的一部分进行部署,而无需在系统上安装它们。如果你这样做,你将不必再次获得gem或插件,除非你想将它升级到更新的版本。
答案 1 :(得分:0)
据我所知,这两者表现完全不同:
所以在你的情况下,我宁愿使用插件,而不是宝石。
答案 2 :(得分:0)
您可能会发现调试插件与gem相比更容易。如果在您的IDE中您需要搜索应用树中的代码,那也很不错。
我发现安装插件以进行开发并在代码发布后转换为gems很不错。