Rails 如果我要在 rails 里面写一个可能被很多 controller 调用的 public def,我该写在哪儿啊?

hahahaha · 2014年12月01日 · 最后由 hahahaha 回复于 2014年12月01日 · 1608 次阅读

如果我要在 rails 里面写一个可能被很多 controller 调用的 public def,我该写在哪儿啊?

学习完了 rails 觉得 rails 最爽的不是别的而是精妙无比的 Active Record,其他的 MVC 啊 模板啊 等等感觉跟其他框架差不多也不咋省代码 AR 简直逆天啊

现在我要写一个公用的 def

比如

这样的最简单的公用方法,我是写在哪个里面合适呢? 写在某一个 Controller 比如 AController 然后在其他 controller 中用 AController::add 这样去调用?貌似也不行

ApplicationController

helper_method :add

def add(a, b)
  return a + b
end

#1 楼 @libuchao ApplicationController 的 helper_method 不会默认加载吧,我就怕把这个 ApplicationController 越写越大

因为我要加的是一个计算截图比例的 public method,仅仅只有我的 10 个 controller 中的 2 个跟截图有关的 controller 才会用到

写个 helper module,然后在需要的 controller 里 include xxxHelper

#3 楼 @loveltyoic 超级感谢啊 不过我看的是 helper 是 放生成 html 的 公用代码吧,这个本来应该算是 controller 里面的 private def 的,不知道放 helper 合不合适。我再去看看哈。3Q3Q

如果觉得帖子已经问题解决了 能不能终结此贴或者 给个标志神马的以免可能浪费大家重复回答或者看了

@huacnlee

需要 登录 后方可回复, 如果你还没有账号请 注册新账号