gpt4 book ai didi

ruby-on-rails - 如何覆盖 gem 的常量? (Rails 上的 ruby )

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

我正在使用 Twitter-text gem 在我的项目中,但我遇到了一些错误。我需要覆盖该 gem 的一个常量。

我在 StackOverflow 上看到一些关于方法覆盖的问题对我有帮助,但我仍然遇到麻烦。我在 /config/initializers/ 中创建了一个名为 twitter-text.rb 的文件,并编写了以下代码:

module Twitter
class Regex
HASHTAG_CHARACTERS = "/[[^ ]_#{LATIN_ACCENTS}]/io"
end
end

(这个正则表达式允许我用除空格以外的任何字符编写标签)。

我也在尝试重写一个方法,但它似乎也不起作用。按照我的代码(在同一个文件上):

module Twitter
module Autolink
def auto_link_hashtags(text, options = {}) # :yields: hashtag_text
text = text.downcase
options = options.dup
(...)
end
end
end

我刚刚向此方法添加了以下行:text = text.downcase。那么,我该怎么做才能覆盖这个方法和属性/常量呢?

最佳答案

您可以尝试先删除常量,然后重新定义它:

module Twitter
class Regex
remove_const(:HASHTAG_CHARACTERS) if (defined?(HASHTAG_CHARACTERS))

HASHTAG_CHARACTERS = "/[[^ ]_#{LATIN_ACCENTS}]/io"
end
end

这个 super 丑monkeypatch领土,虽然。

关于ruby-on-rails - 如何覆盖 gem 的常量? (Rails 上的 ruby ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067263/

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