got*_*tqn 6 ruby ruby-on-rails actioncontroller ruby-on-rails-3
我的模型中的函数几乎都有"共享"语句.问题是我得到以下错误,当我需要在我的控制器中使用多个这些函数时:
控制器操作应该调用除初始查找或新查询之外的一种模型方法
并且IDE更深入地解释:
如果控制器操作在初始.find或.new之后包含多个模型方法调用,则此检查会发出警告.建议您在模型类中实现所有业务逻辑,并使用单个方法来访问它.
这是否意味着所有逻辑都应该放在更复杂的模型函数中?我认为控制器的工作是调用模型函数并将结果传递给视图.
如果我将模型函数代码放回控制器,一切都会工作,但我会在所有控制器操作中得到代码重复.
那么,这里的正确方法是什么?
警告消息确实意味着逻辑应该放在单个模型函数中,但不一定要放在更复杂的模型函数中。为了避免模型重复和/或“胖模型”问题,您可能需要引入模型依赖的其他类。
是的,控件的工作是调用模型函数,但仅作为薄层,根据除了初始创建/查找之外每个控制器操作一个模型函数的检查指南。
我不确定我是否理解您关于如果将函数向后移动就会在控制器中获得代码重复的评论,因为您始终可以在控制器级别引入共享函数。但同样,这不是推荐的“瘦控制器”和“合理瘦模型”以及根据需要支持类的方法。
| 归档时间: |
|
| 查看次数: |
3675 次 |
| 最近记录: |