Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何保存整个Rails应用程序包,包括正在使用的gems?_Ruby On Rails_Ruby On Rails 3_Gem - Fatal编程技术网

Ruby on rails 如何保存整个Rails应用程序包,包括正在使用的gems?

Ruby on rails 如何保存整个Rails应用程序包,包括正在使用的gems?,ruby-on-rails,ruby-on-rails-3,gem,Ruby On Rails,Ruby On Rails 3,Gem,我用了很多宝石。他们对彼此的依赖关系非常敏感。 现在,目前的宝石组合是完美的。我想保存整个应用程序,并在进行下一个项目时重新使用它 正如你所知,宝石在rubygem.org 所以我想保存正在使用的应用程序和gems的整个包。 那么,我不需要关心设置gem,除非我需要新的gem。 我需要关心的只是在下一个项目中编码 有人告诉我使用此命令保存整个应用程序文件夹 bundle install --path=vendor/bundle 在这之后,我的应用程序出了问题:( 重新编译后,jQuery不再工

我用了很多宝石。他们对彼此的依赖关系非常敏感。
现在,目前的宝石组合是完美的。我想保存整个应用程序,并在进行下一个项目时重新使用它

正如你所知,宝石在
rubygem.org

所以我想保存正在使用的应用程序和gems的整个包。 那么,我不需要关心设置gem,除非我需要新的gem。 我需要关心的只是在下一个项目中编码

有人告诉我使用此命令保存整个应用程序文件夹

bundle install --path=vendor/bundle
在这之后,我的应用程序出了问题:( 重新编译后,jQuery不再工作了

所以我确实需要用旧的文件夹替换整个应用程序文件夹,它在
/usr/local/bin/ruby/usr/local/lib/ruby/gems/1.9.1

现在,
jQuery
重新编译后可以正常工作

在这种情况下,我如何保存应用程序和gems的整个软件包

我想做的是,我只想设置Ruby的正确版本和MySQL。
然后我想把这个包放进去,开始编码,而不是部署关于gems的环境

有人能分享一下这个想法吗?

回答你的问题 Bundler的命令会将所有gem文件锁定并缓存到
/vendor/cache
,您可以运行
bundle install--local
,这样将来就不会检查rubygems.org了

对你的问题的评论 这个问题让我感到畏缩,因为虽然我理解人们对拥有一个你知道有效的“基本形象”的兴趣,但听起来似乎有一些问题会波及到其他项目

  • 超负荷应用
    • 每个项目真的需要所有相同的依赖关系吗
    • 如果不是,那么您的每个安装都会有不必要的依赖项
  • 脆弱依赖
    • 您提到您的依赖关系对彼此非常敏感,这会引起警报
    • 我不完全理解你的意思,但是听起来你应该考虑找到更稳定的接口的依赖关系。
    • 查看ruby-toolbox.com,关注“发布”日期
  • 过时的依赖项
    • 锁定版本意味着您的新应用程序将无法从维护人员的更新中获益
    • (示例)如果您将rails依赖项锁定到3.2.8并继续使用它,那么您自己(和客户)将面临几个主要的安全漏洞
    • (可能的修复)查看以允许您的应用程序接收不中断的修复

  • 祝你好运。

    谢谢你的回答:)没有人会这样做吗?我真正害怕的是宝石的丢失。它们将来可能会从rubyorg消失,这样我就不能再使用它们了。你们如何处理这个可能的问题?rubygems的政策是不删除内容,所以旧的gems和这些gems的旧版本(几乎)总是可用的。只有极少数情况下,维护人员可能希望删除版本(通过
    gem-yank
    命令),但这通常仅适用于源代码中意外包含密码之类的问题。如果您有某个gem必须是特定版本才能使用代码,您可以在文件中指定确切的版本。但是,我建议尝试为每个新项目使用最新版本,以便您能够及时了解最新的修复。谢谢您的完美回答。我会牢记在心,并决定听从你的建议。谢谢:)刚看到这个,可能很有趣。thoughtbot有一个gem,用于生成rails应用程序,并进行基本更改/填充。