gpt4 book ai didi

ruby-on-rails-3 - Mongoid 字段和随后添加的本地化

转载 作者:行者123 更新时间:2023-12-05 00:27:17 24 4
gpt4 key购买 nike

以后添加本地化时有什么需要考虑的吗?


类(class)文章
字段:标题,类型:字符串

类(class)文章
字段:标题,类型:字符串,本地化:true

我的 Articles 上有内容模型并希望随后添加本地化。

现在我发现有时内容会显示为哈希

{"en"=>"asdfasdf", "de"=>"123123123"}

有时作为普通文本。

如果我通过以下方式显示文章
@article.title
# I get --> no implicit conversion from nil to integer


@article.title_translations
# I get --> no implicit conversion from nil to integer

如果文档未翻译,则总是会发生这种情况。 (字符串)。

额外的

此外,如果我尝试更改内容,我会遇到问题:
article.title # "en"
article.title_translations # "Test Title"
article.update_attribute(:name, c.name_translations)
# raises NoMethodError: undefined method `merge!' for "Test Title":String
article.name = c.title_translations
# raises NoMethodError: undefined method `merge!' for "Test Title":String


  • 如何正确地将字符串字段更改为“字符串,:localize => true”?
  • 是否有脚本或要迁移的东西?
  • 最佳答案

    如果文档未翻译并且您尝试访问此字段,则会引发错误:

    no implicit conversion from nil to integer

    如果您尝试更改它,则会引发错误:
    raises NoMethodError: undefined method `merge!' for "Test Title":String

    这似乎是一个 mongoid 错误。现在,您可以在添加 'localize: true' 后为迁移执行此操作:
    I18n.locale = :en
    Article.all.each do |article|
    begin
    article.title
    rescue
    b = article.attributes['title']
    article.unset('title')
    article.title = b
    article.save
    end
    end

    它为我创造了诀窍。

    关于ruby-on-rails-3 - Mongoid 字段和随后添加的本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21077091/

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