繁体   English   中英

Rails-在视图,控制器和模型中使用一组功能

[英]Rails- Using a set of functions across the view , controller and model

我有一个将数组转换为哈希的函数,我想在Rails应用程序中的所有模型,控制器和视图文件中使用它。

这是否违反了某些核心设计原则,还是我缺少真正明显的东西?

更新:这实际上是一个软件工程问题。 我想了解为什么某些“便利”的东西不允许在铁轨中使用,我怀疑这正是因为他们不希望我们这样做

这实际上可能是一个坏习惯。 相反,最好始终在控制器和模型中使用数组和哈希,并在必要时将它们转换为备用视图。

也就是说,如果以这种方式在整个应用程序中将数据本机表示为数组,并且如果需要在视图中将其作为哈希,则首先将其转换并分配它,或者使用助手在视图中对其进行转换。

查看全局帮助器,请访问:helpers / application_helper.rb

如果必须从控制器调用帮助程序,则仍可以在其中定义它,我相信您可以这样做:

def Something
  ....
  hashData = @template.helper(arrayData)
end

在模型中给助手打电话真的不是一个好主意,没有意义。

最后一点,将这种逻辑封装在一个库中可能是理想的,您的控制器可以调用一个库,而视图助手也可以。

我认为您是:视图不应该需要该方法。 控制器应该做到这一点,并将其传递给视图进行显示。 控制器或更好的服务层可以将该方法应用于模型对象,但是没有理由让模型对象知道它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM