以后添加本地化时有什么需要考虑的吗?
从
类(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
题
最佳答案
如果文档未翻译并且您尝试访问此字段,则会引发错误:
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/