gpt4 book ai didi

ruby-on-rails - “英语”全局变量在 Rails 中不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:07 34 4
gpt4 key购买 nike

我正在尝试在 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

这是 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

它适用于 irb,但不适用于 rails console 或 web 控制台。请注意,require 'english' 返回 false,因为 gem 已经加载,但它不起作用。

我错过了什么?

最佳答案

TL;DR:从 Gemfile 中删除了 gem 'english',有效。

我最终在几个月后回到这个问题上并弄清楚了。

我急于使用 English library , 我添加了 english gem到我的 Gemfile。 (注意大写)。

虽然 English 是我想要的内置库,但对于描述性全局变量,english 是通用英语语言处理的瑰宝。

通常,require 'english' 需要 gem,而 require 'English' 需要库。但是,我使用的是 case insensitive Mac OS X 系统,所以 require 'English' 首先找到 english gem 并使用它。这意味着 Ruby 无法加载 English 库,这就是它从未工作的原因。

关于ruby-on-rails - “英语”全局变量在 Rails 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33901010/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com