草庐IT

版本不匹配

全部标签

ruby-on-rails - 如何切换到旧版本的 Rails

我正在尝试阅读2011年写的一本旧书。所以,随机选择3.1.3自2011年11月以来的版本。如何在我的RVM中切换到该版本?目前有Rails4.0.0.beta1版本...请不要建议将它放在Gemfile中,因为有很多其他依赖项处理起来太麻烦,因此如果我只是切换,我假设这意味着其他依赖项将被占用同时照顾得太多了吧?更新**-s-MacBook-Pro:agile**$rails-vRails4.0.0.beta1**-s-MacBook-Pro:agile**$geminstallrails-v3.1.3Successfullyinstalledrails-3.1.31geminsta

ruby - 正则表达式匹配 string1,除非前面有 string2

使用Ruby,我如何使用单个正则表达式来匹配“xyyayxy+y”中所有出现的“y”且前面没有x(y,ay,+y)?/[^x]y/也匹配前面的字符,所以我需要一个替代... 最佳答案 您需要一个零宽度的否定后视断言。尝试/(?它准确说明了您要查找的内容,即找到所有“y”前面没有“x”,但不包括前面的字符,即零宽度部分。编辑添加:显然这仅受Ruby1.9及更高版本的支持。 关于ruby-正则表达式匹配string1,除非前面有string2,我们在StackOverflow上找到一个类似的

ruby-on-rails - 如何将特定的 gem 版本设置为默认版本?

我有两个版本的ruby​​gem。json(default:2.0.2,1.8.6)这里默认设置最新版本;但是我需要将json1.8.6设置为默认值。有没有将旧版本的gem作为默认版本?因为我无法卸载默认的json版本。需要在可用的gem版本之间切换。 最佳答案 检查你有什么:gemlistjson设置你想要的:geminstall--default-v1.8.6json这对于诸如“bundler”之类的东西最有用!!!对于其他方面,使用bundler和Gemfile可能是更好的选择。

ruby - 如何从 gemspec 文件中获取版本?

有没有一种干净的方法可以从.gemspec文件中提取版本字符串?(gem尚未安装)例如somethingcool.gemspec是Gem::Specification.newdo|s|s.name="somethingcool"s.version="1.2.3"...etc...end我想提取“1.2.3”。我可以grep出来,但必须有更好的方法。 最佳答案 require"rubygems"spec=Gem::Specification::load("example.gemspec")putsspec.version

ruby - 为什么 gems 安装在与我运行的 Ruby 版本不同的目录中?

当我安装gem时,它会安装在名为1.9.1的目录中,尽管这不是我安装的Ruby版本:$ruby-vruby1.9.3p327(2012-11-10revision37606)[x86_64-darwin12.2.0]$gemwhichrails.../ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails.rb为什么会这样?我没有安装其他Ruby版本(当然也没有安装v1.9.1)。 最佳答案 请注意,以下内容也适用于撰写本文时所有后来的Ruby版本,而不仅仅是1.9.2。根据1.9.2releas

ruby - 测试变量是否与多个字符串中的任何一个匹配,而没有长的 if-elsif 链或 case-when

我想在ruby​​中有一种很好的单行方式来表达ifmystr=="abc"or"def"or"ghi"or"xyz"但在我通常查阅的在线引用资料中找不到如何做到这一点...谢谢! 最佳答案 也许你不知道你可以在一个案例上放置多个条件:casemystrwhen"abc","def","ghi","xyz"..end但是对于这个特定的基于字符串的测试,我会使用正则表达式:ifmystr=~/\A(?:abc|def|ghi|xyz)\z/如果您不想构造正则表达式,也不想使用case语句,您可以创建一个对象数组并使用Array#incl

ruby - 返回字符串,直到在 Ruby 中匹配字符串

如何返回"#"或"Apt"的第一个实例之前的字符串部分?我知道我可以根据"#"或"Apt"将字符串拆分成一个数组,然后调用.first,但必须有更简单的方法。 最佳答案 字符串拆分绝对比正则表达式更容易、更易读。对于正则表达式,您需要一个捕获组才能获得第一个匹配项。它将与字符串拆分相同string.split(/#|Apt/,2).first 关于ruby-返回字符串,直到在Ruby中匹配字符串,我们在StackOverflow上找到一个类似的问题: http

ruby - 正则表达式匹配日期

我想匹配格式为mm/dd/yy或mm/dd/yyyy的日期,但它不应选择23/09/2010,其中月份为23,这是无效的,也不应选择无效日期,如00/12/2020或12/00/2011. 最佳答案 比疯狂的巨大Regex更好(假设这是为了验证而不是扫描):require'date'defvalid_date?(str,format="%m/%d/%Y")Date.strptime(str,format)rescuefalseend除了社论:Eww!为什么要使用如此糟糕的日期格式?选择ISO8601,YYYY-MM-DD,这是一个有

ruby - 如何在 Ruby 中进行模糊子串匹配?

我发现了很多关于模糊匹配的链接,将一个字符串与另一个字符串进行比较,看看哪个获得最高的相似度分数。我有一个很长的字符串,它是一个文档,还有一个子字符串。子字符串来自原始文档,但已被多次转换,因此可能引入了奇怪的人工制品,例如这里有一个空格,那里有一个破折号。子字符串将与原始文档中的一段文本匹配99%或更多。我不匹配以查看该字符串来自哪个文档,我试图在文档中找到该字符串开始的索引。如果字符串是相同的,因为没有引入随机错误,我会使用document.index(substring),但是即使只有一个字符差异,这也会失败。我认为可以通过删除字符串和子字符串中除a-z之外的所有字符来解决差异,

ruby - Gem 依赖版本含义

Gem依赖版本可以用前缀=指定,,>,,>=和~>.除了最后一个我都懂,~>是什么意思什么意思? 最佳答案 ~>运算符的意思是:在同一版本中进行匹配,具体取决于您希望它的具体程度,这里有一些示例:SpecificationFrom...To(exclusive)">=3.0"3.0...∞"~>3.0"3.0...4.0"~>3.0.0"3.0.0...3.1"~>3.5"3.5...4.0"~>3.5.0"3.5.0...3.6Source 关于ruby-Gem依赖版本含义