gpt4 book ai didi

ruby-on-rails - rails i18n redis ERR 未知命令 [] railscast 256

转载 作者:可可西里 更新时间:2023-11-01 10:53:41 25 4
gpt4 key购买 nike

按照这个 RailsCast:http://railscasts.com/episodes/256-i18n-backends但是使用 Rails 5.2,我提出了这个错误:

Redis::CommandError in Pages#home<br>
ERR unknown command '[]'

在 config/initializers/i18n_backend.rb

TRANSLATION_STORE = Redis.new 似乎导致了这个问题。

TRANSLATION_STORE = {} 就像一个魅力。

但没有 Redis!

有什么提示吗?

最佳答案

问题定义在这里: https://github.com/ruby-i18n/i18n/blob/master/lib/i18n/backend/key_value.rb#L25-L30

我没有研究过 redis 4,但似乎这些方法已被删除。解决方案是给 Redis gem 打补丁,将这些方法添加到 redis 中。

# config/initializers/redis.rb
class RedisHash
def initialize(redis)
@redis = redis
end

def [](key)
@redis.get(key)
end

def []=(key, value)
@redis.set(key, value)
end
end

Redis.current = Redis.new(host: 127.0.0.1,
port: 6379,
db: 0,
thread_safe: true)

# config/initializers/i18n.rb
I18n::Backend::KeyValue.new(RedisHash.new(Redis.current))

上面的代码是示例初始化程序。它适用于最新版本的 redis 4.3.5

我也测试过 redis-store/redis-i18n,它也适用于最新的 redis 版本,但在我看来,这个实现对 redis 造成了巨大的过载。

编辑:由于 redis 贡献者 [answer][1]

[1]: https://github.com/redis/redis-rb/issues/997#issuecomment-871302883我已经更新了我的解决方案

关于ruby-on-rails - rails i18n redis ERR 未知命令 [] railscast 256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281909/

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