Ruby on rails 在Rails模型文件中放置UI文本可以吗?

Ruby on rails 在Rails模型文件中放置UI文本可以吗?,ruby-on-rails,model-view-controller,Ruby On Rails,Model View Controller,我有一个Rails表单,用于编辑特定类的对象。表单上的标签需要根据正在编辑的特定对象略有不同 显而易见的方法是向模型对象添加实例方法,以返回该对象的适当标签。然而,这似乎是将视图实现的一部分放在我的Rails项目的models文件夹中,这似乎是不对的 有更好的方法吗?我不确定我是否完全理解,但似乎您可以为此提供一个帮助方法。我的一般指导原则是,除非文本包含标记,否则文本在模型中是良好的。如果文本包含标记,则它属于辅助对象 您将所有标签放在本地化文件中(即使您只有英文),然后从中进行查询,请参见第

我有一个Rails表单,用于编辑特定类的对象。表单上的标签需要根据正在编辑的特定对象略有不同

显而易见的方法是向模型对象添加实例方法,以返回该对象的适当标签。然而,这似乎是将视图实现的一部分放在我的Rails项目的models文件夹中,这似乎是不对的


有更好的方法吗?

我不确定我是否完全理解,但似乎您可以为此提供一个帮助方法。

我的一般指导原则是,除非文本包含标记,否则文本在模型中是良好的。如果文本包含标记,则它属于辅助对象

您将所有标签放在本地化文件中(即使您只有英文),然后从中进行查询,请参见第5.1节

如果您使用表单生成插件(如),它允许您在文件上定义标签和表单提示(来自自述文件):


最好的方法不是使用视图辅助对象吗

e、 g:

将表示逻辑排除在模型之外,将业务逻辑排除在视图之外

无论您做什么,都不要覆盖标签标签

即使你有一个子类,这有关系吗

e、 g:


助手会一直工作,直到我决定将对象子类化,然后它变得非常混乱。
2. Add some cool label-translations/variants (config/locale/en.yml):

  en:
    formtastic:
      labels:
        post:
          title: "Choose a title..."
          body: "Write something..."
      hints:
        post:
          title: "Choose a good title for you post."
          body: "Write something inspiring here."
def modified_label_tag(obj, field); .... code to generate label_tag; end
label_class = case obj.class
when SubClassOfModel
'foo'
...
end