如何在Rails中捆绑一个gem?

jay*_*ode 2 bundle rubygems ruby-on-rails

救命!!我需要捆绑一个gem,否则已发布的客户端网站将会死亡

    MacBook-Pros-MacBook-Pro:pn 
macbookpro$ sudo ruby script/generate sanitize
Missing the Rails 2.3.5 gem. Please `gem install -v=2.3.5 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
Run Code Online (Sandbox Code Playgroud)

Jak*_*b S 8

你可以按照消息告诉你手动在机器上安装gem,但是因为你问的是如何捆绑gem,这可能不是你想要的.

要捆绑Rails gems,请在安装了gem的计算机上运行以下命令(可能是您的开发计算机):

rake rails:freeze:gems
Run Code Online (Sandbox Code Playgroud)

这将把Rails gems解压缩到vendor/rails.然后是添加和提交宝石的问题.

冻结/供应应用程序所需的所有gem(如environment.rb中所定义):

rake gems:unpack:dependencies
Run Code Online (Sandbox Code Playgroud)

如果您使用像Nokogiri这样的宝石,其中包含需要针对其运行的环境进行编译的代码,那么您还需要更多.出售后,运行

rake gems:build
Run Code Online (Sandbox Code Playgroud)

那应该为你做.注意,最后一步需要在需要运行应用程序的机器上运行 - 在这种情况下,您不能仅仅依靠在本地执行它并像使用纯Ruby gem一样提交更改.

有关详细信息,请参见http://reborg.tumblr.com/post/99668398/rails-gems-unpack-native.