当前位置:  开发笔记 > 编程语言 > 正文

在轨道中将控制器访问的可重用方法放在何处

如何解决《在轨道中将控制器访问的可重用方法放在何处》经验,为你挑选了3个好方法。

我从我的控制器调用了几种方法,感觉它们应该被拔出并放入控制器之外的可重用类中.人们通常把这些东西放在哪里?我知道我可以将它们放入我的ApplicationController中,但如果我认为以后可以在其他应用程序中使用这些方法,那似乎不是一个很好的解决方案.

另外,我的控制器中有很多实用程序方法,可能不会在其他控制器中使用,或者将来根本不会使用,但我觉得它们只是膨胀了我的控制器.人们通常是将它们移到某个地方以保持清洁,还是最终得到一个巨大的控制器?

我来自Java和Actionscript,我只是为这些东西创建新的util类.



1> Pete..:

lib目录是一个可以放置模块/类的地方,这些模块/类可以混合在控制器中或由控制器使用(其他任何东西,真的).这可以是放置不属于其他区域的代码的地方(但要小心确保lib本身不会变成混乱).侧面评论只是要记住:

如果您知道有大量相关功能可以或将要在其他应用程序中使用,则可能是一个插件.

还值得记住的是,创建一个不是Active Record对象的模型没有任何问题.所以,取决于你拥有的东西,这也可能有意义.



2> Sahil kalra..:

您可以创建app/modules目录,并在其中创建XYZUtils模块,例如

module XYZUtils
  def abc
  end

  def efg
  end
end

并在控制器或模型等中根据需要包含模块.

include XYZUtils

您可以为与不同模型或实体相关的实用程序功能创建不同的模块

我不喜欢/lib目录,因为它应该包含项目相关的代码,而不是应用相关的,例如任务等.

我会将所有与App相关的代码保存在/app目录中



3> Harish Shett..:

lib目录中创建模块文件:

module ControllerUtil
  def foo
  end

  def bar
  end
end

将模块包含在控制器中:

class UsersController < ApplicationController
  include ControllerUtil
end

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有