【问题标题】:Ruby on Rails - Where to put these helper type methodsRuby on Rails - 将这些辅助类型方法放在哪里
【发布时间】:2014-06-21 07:58:55
【问题描述】:

我一直在寻找最佳实践,将一些辅助方法放置在哪里,这些方法可以为我完成所有这些计算/排序,但我还没有找到明确的答案,我想知道是否有人对我有一些好的见解。

基本上我有一个动作方法,它接受一个字符串用户输入,找到与该字符串相似的单词,执行一堆字符串操作,然后排序返回一个数组。

我不知道我是否应该在/lib 中有模块,制作一个控制器辅助模块,...我在哪里寻找一些反馈!

但本质上我只是想:

  1. POST 一个词到控制器操作方法
  2. 调用辅助方法或在控制器外部对单词执行一些逻辑
  3. 有那个辅助方法或者那个逻辑在哪里,把结果返回给我

【问题讨论】:

    标签: ruby ruby-on-rails-4 module helpers


    【解决方案1】:

    我不会从您的控制器调用辅助方法。就我个人而言,我会使用模块/普通的旧 ruby​​ 对象或关注点来处理计算。控制器将对象存储在实例变量中,以便在您的视图中使用它。

    另外值得注意的是装饰器,你应该看看 draper:https://github.com/drapergem/draper

    【讨论】:

      【解决方案2】:

      只需将该方法放在您的应用程序助手中,无论从哪里调用它都会在处理完您的逻辑后返回结果值,您不应该使事情过于复杂,因此好的旧应用程序助手是放置常用方法的好地方在视图和控制器中

      【讨论】:

      • 总是赞成简化事情。谢谢!