为什么 Rails I18n.t 将我的翻译包裹在一个段落中?

Why does Rails I18n.t wrap my translation in a paragraph?

在我的 Rails 4 应用程序中,我使用助手 class 为 UI 元素生成 JSON 树。这是 class 的简化版本:

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:我猜想这与 class 是从视图实例化的事实有关(我知道这不是最佳的)。但是,这种行为什么时候才是可取的?

对于所有面临类似问题的人来说,在我的情况下,它是由 Redcloth gem 引起的,它还为 ER::Util#textilize 定义了一个 t 别名。因此,我对 t(:deprecated) 的调用实际上并没有使用 I18n.t.

解决方法很简单,我现在使用 I18n.t(:deprecated) 而不是 t(:deprecated)