使用rails翻译数据库字段
我知道Rails中内置的I18n,但是如何为每个语言环境选择一个数据库字段?
我的模型结构是这样的:
title #default (englisch) title_de #(german) title_it #(italian)
在我的模板中,我希望只能写
并且应该用正确的语言获得价值。
是否有插件或解决方案使用不同的区域设置使用不同的字段与像我的结构?
虽然您的数据库体系结构(不同的区域设置硬编码为表列)对我来说似乎不对,但我认为您可以通过向模型添加伪字段来实现您想要的function,其中包括:
# example not tested class MyModel < ActiveRecord::Base def localized_title(locale) locale = locale == 'en' ? '' : '_' + locale read_attribute("title#{locale}".to_sym") end end
或者,如果您以某种方式使模型可以看到当前的区域设置,则可以类似地覆盖默认的title
访问方法。
编辑:您可以查看http://github.com/iain/translatable_columns ,它似乎与您的架构非常兼容....