ruby on rails -我应该在哪里存储公共函数



我有三个模型。

  • users_controllers.rb
  • communities_controller.rb
  • community_tipics_controller.rb

我使用的函数名为check_digit

def checkdigit
 (transaction)
end

我把它放在所有控制器中。并通过before_filter调用它。
但是我认为我浪费了,因为我只是把上面完全相同的代码粘贴到所有的控制器上。

如果我的控制器正在使用它,我应该把它放在哪里?
我应该把它放在controllers/application_controller.rb中吗?

有几种方法可以做到这一点,一些可能的方法是(如果我要这样做)

<<p> 1方法/strong>

如果这是控制器使用的简单方法内部application_controller.rb

private
def checkdigit
 (transaction)
end

第二个方法

如果你的函数被一个特定的类别使用,(这通常是我经常做的),创建一个单独的控制器,并让你所有的其他控制器继承它

例如:如果你的方法只使用了我的管理员,并且假设你有更多这样的方法

class AdminController < ApplicationController
   layout 'admin'
   private
   def checkdigit
     (transaction)
   end
end
and
class UsersController < AdminController
end

3

如果你的方法是/将被模型/控制器等使用。考虑把它变成一个模块

module CommonMethods
   def checkdigit
     (transaction)
   end
end
class UsersController < ApplicationController
    include CommonMethods 
end

HTH

可以放在helpers/application_helper.rb

您是正确的,所有控制器需要的所有常用方法都应该存储在ApplicationController中。

此外,您还应该保持该控制器中所有控制器之间的公共逻辑。

编辑:


如果他们只是帮助,那么你会把他们放在帮助的地方,看看@simone的答案。

相关内容

  • 没有找到相关文章

最新更新