草庐IT

ruby-on-rails - Rails、已安装的 Gem 版本和 Gemfile.lock 版本

我有一个问题。如果bundle更新,Gemfile.lock总是被提交。今天,当我部署web应用程序时,我看到了这条错误消息,Couldnotfindjwt-1.5.3inanyofthesourcesjwt-1.5.2安装在已部署服务器的共享gem路径中。我认为bundleinstallnewjwt-1.5.3gem因为Gemfile.lock中指定的版本(1.5.3)和安装的版本(1.5.2)不相等。为什么不能bundleinstalljwtgem?如果找不到jwt-1.5.3,是否应该捆绑安装那个gem? 最佳答案 删除Gem

ruby-on-rails - Rails add_index 算法 : :concurrently still causes database lock up during migration

为了防止在迁移到生产站点期间出现数据库事务错误,我们遵循了https://github.com/LendingHome/zero_downtime_migrations中列出的建议。(具体由https://robots.thoughtbot.com/how-to-create-postgres-indexes-concurrently-in概述),但在特别大的表上创建索引期间,即使是索引创建的“并发”方法也会锁定表并导致该表上的任何ActiveRecord创建或更新导致各自的事务失败有PG::InFailedSqlTransaction异常。下面是我们运行Rails4.2(使用Acti

ruby - Cucumber 测试无法启动,错误为 "Display socket is taken but lock file is missing.."

运行cucumber后bundleexeccucumberfeatures/emails.feature:20我遇到了错误Displaysocketistakenbutlockfileismissing-checktheHeadlesstroubleshootingguide(Headless::Exception)/Users/me/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/headless-2.2.0/lib/headless.rb:195:inensure_xvfb_is_running'/Users/me/.rbenv/ver

ruby - 特拉维斯报告损坏的 Gemfile.lock 的奇怪消息

我使用bundler来安装东西,因为我添加了Gemfile.lock,travis开始提示:YourGemfile.lockiscorrupt.ThefollowinggemismissingfromtheDEPENDENCIESsection:'echoe'当然,一切都在本地运行。它也可以使用DeployBot。我什至安装了dockerubuntu并尝试了,仍然可以。我的Gemfile.lock没有损坏。使用相同版本的ruby​​和bundler。这是怎么回事?更新这与bundler版本有关。我使用的是1.11.0,但收到报告说它可以与eg一起使用。1.8.3.??

ruby - Git Bash 给出 sh.exe : ruby: command not found

我在WindowsVistaBusiness上使用GitBash。我正在尝试安装Redmine。基本上在第4步,我需要在安装bundler之前安装RubyGem作为依赖项安装的一部分(http://www.redmine.org/projects/redmine/wiki/RedmineInstall)。我从https://rubygems.org/pages/download下载了ruby​​gems-2.2.2.zip.然后我将文件解压缩到桌面上的一个文件夹中。在GitBash中,我输入了rubysetup.rb,我得到了sh.exe:ruby​​:commandnotfound。

ruby - 直接修改 Gemfile.lock 会发生什么?

自从第二次执行bundleinstall后,只要Gemfile没有改变,依赖项就会从Gemfile.lock加载。但我想知道如何检测这两个文件之间的更改。例如,如果我直接将新的依赖项添加到Gemfile.lock中而不将其添加到Gemfile中(与最佳实践相反,因为Gemfile.lock是从Gemfile自动生成的),bundleinstall是否认为Gemfile已更改?确实,bundleinstall过程会比较整个Gemfile和Gemfile.lock树以检测更改吗?如果是,即使我直接向Gemfile.lock添加依赖项,Gemfile也会被检测为已更改(因为不同)并且会重新删

ruby-on-rails - ruby rails :/bin/sh: rspec: command not found

我目前正在阅读MichaelHartl的RoR教程,但在尝试运行Spork和Guard时卡在了第3章。尝试运行测试时,我得到:/bin/sh:rspec:找不到命令是的,我确实四处寻找答案,但我没有看到RubyTest.sublime.settings文件在哪里,所以我不知道如何编辑它。谁能帮我解决我的错误?这是我的用户fodler中的Rubytest.sublime.settings文件{"erb_verify_command":"bundleexecerb-xT-{file_name}|ruby-c","ruby_verify_command":"bundleexecruby-c{

ruby - 我可以阻止 Bundler 将 RUBY VERSION 添加到 Gemfile.lock 吗

每次我在命令行上运行任何gem命令时,Bundler都会坚持触摸我的Gemfile.lock文件以添加此行:RUBYVERSIONruby2.2.2p95我不想将它提交到我们的存储库,因为这意味着每个使用不同补丁级别的Ruby2.2.2的开发人员都将与我进行提交war。(我已经接受了BUNDLED_WITH行的类似问题。)但是除非我提交该行,否则我无法部署,因为我们的部署通过rake任务和运行部署导致Bundler添加这个block,于是部署过程说,“等等!你的工作树很脏!你可能正在部署不完整的更改!!!!1!”(好吧,不是字面意思,但你明白了。)我可以告诉Bundler将RUBYVE

ruby - 像 sh -x 一样回显每个 Ruby 代码行?

有没有办法让ruby​​脚本在执行的每一行回显(或记录到文件我可以tail-f),类似于DOS中的bash-x或@echoon?ruby-w不会这样做——只会增加警告等的冗长程度。研究了Unroller但它不起作用,可能太过时了。不可编译的依赖项。我经常使用irb,但在这种情况下,我需要一些非交互式的东西,例如。检查尸检。 最佳答案 你可以使用ruby-rtracer[your_script.rb]还有ruby-debug哪个candordebug--trace[your_script.rb]

ruby - 在不安装 gems 的情况下更新 Gemfile.lock

有没有办法在不安装已更改的gem的情况下强制更新Gemfile.lock? 最佳答案 运行bundlelock--update。我在ChrisBlunt的博文中找到了答案:“RailsonDocker:QuicklyCreateorUpdateYourGemfile.lock”:Today,Idiscoveredawaytosavethehourswasteddownloadinggems:bundler’slockcommand.Thisgemofacommandresolvesyourapp’sdependenciesandwr