我有一个模型关注点,它增加了一种方法' t'允许模型字段翻译为I18n:
module Translatable
extend ActiveSupport::Concern
def t(field_name)
I18n.t("models.#{self.class.table_name}.#{translation_tag}.#{field_name}")
end
型号:
class Model < ActiveRecord::Base
include Translatable
使用以下几乎所有地方都可以正常工作:
@model.t(:name)
但是我有一个select字段,它使用此代码映射条目:
Model.all.order(name: :asc), :id, :name
我想要:使用可翻译方法的名称。以下工作,但我得到一个缺少参数错误(很明显为什么):
Model.all.order(name: :asc), :id, :t
然而,这不起作用:
Model.all.order(name: :asc), :id, :t(:name)
将变量称为符号时,将变量传递给方法的正确方法是什么?