在哪里为Rails模型放置复杂的显示逻辑?

时间:2011-09-11 06:26:24

标签: ruby-on-rails refactoring helpers presentation

我有一个Location#description方法,它返回一个(真正的)长字符串。此字符串是人类可读的描述,它是根据Location属性的值生成的。但是,这段代码冗长而复杂,并且在我的模型中添加了许多“非商业”逻辑。

最好做什么?在助手中捆绑所有这些逻辑还是创建一个LocationPresenter类?如果我创建演示者,有关这样做的指导原则是什么?我应该用Location初始化它还是可以使用attribues hash?

1 个答案:

答案 0 :(得分:0)

考虑将其重构为模块并将其包含在相应的模型中 - 即如果它具有任何业务逻辑组件。另请查看helper_methods(在控制器和视图层都可以使用),如果不是,则只能将宏添加为帮助程序。

你称之为“复杂”并且意识到需要离开你的模型这一事实让我想知道它是否可以通过一些重构与Rail的MVC范例更加一致。