在我的Rails 4应用程序中,我使用一个辅助类为UI元素生成JSON树。以下是该类的简化版本:
class TaxonomyTree
def initialize(root_node)
@root_node = root_node
@deprecation_marker = t(:deprecated)
end
# Method for generating the JSON tree which use @deprecation_marker ...
end
我的语言环境中的相应条目如下所示:
en:
deprecated: deprecated
出于某种原因,在初始化实例后,@deprecation_marker 包含 <p>deprecated</p>
而不是预期的deprecated
。<p>
从何而来?我怎样才能摆脱它?
PS:我猜这与类是从视图实例化的事实有关(我知道这不是最佳的)。但是,这种行为什么时候是可取的呢?
对于所有面临类似问题的人来说,就我而言,它是由红布宝石引起的,它也为 ER::Util#textilize
定义了 t 别名。因此,我对t(:deprecated)
的调用实际上并没有使用I18n.t
。
解决方法很简单,而不是我现在使用t(:deprecated)
I18n.t(:deprecated)
.