bos*_*cko 2 ruby regex gem ruby-on-rails global-variables
我正在尝试在Rails中使用英语gem,因此我可以访问$LAST_MATCH_INFO的隐秘版本$~。但是,尽管需要英语,但$LAST_MATCH_INFO始终是nil,尽管$~仍然有效。
这是我的预期行为irb:
'foo' =~ /o/ # => 1
$~ # => #<MatchData "o">
$LAST_MATCH_INFO # => nil
require 'english' # => true
$LAST_MATCH_INFO # => #<MatchData "o">
$LAST_MATCH_INFO == $~ # => true
Run Code Online (Sandbox Code Playgroud)
这是来自的损坏行为rails console:
'foo' =~ /o/ # => 1
$~ # => #<MatchData "o">
$LAST_MATCH_INFO # => nil
require 'english' # => false
# (Means it's already been required)
$LAST_MATCH_INFO # => nil
$LAST_MATCH_INFO == $~ # => false
Run Code Online (Sandbox Code Playgroud)
它可以在或Web控制台中使用irb,但不能使用rails console。注意require 'english'返回false是因为gem已经被加载了,但是还行不通。
我想念什么?
TL; DR:gem 'english'从Gemfile中删除了,可以正常工作。
最后我回到了这几个月之后,并弄清楚了。
为了方便使用English库,我将english宝石添加到了我的Gemfile。(注意大写)。
虽然English是内置的图书馆,我想,为了描述的全局变量,english是通用英语语言处理的宝石。
通常,require 'english'将需要gem和require 'English'库。但是,我使用的是不区分大小写的 Mac OS X系统,因此首先require 'English'找到了englishgem并使用了它。这意味着Ruby无法加载该English库,这就是为什么它从未起作用的原因。
| 归档时间: |
|
| 查看次数: |
279 次 |
| 最近记录: |