在Rails中重用私有方法5

时间:2016-11-26 07:50:47

标签: ruby-on-rails ruby-on-rails-5

到目前为止,大多数s earched questions都与“有什么不同”有关。我需要知道如何在不同的控制器之间重用它们。

以下只是一个例子。

的ApplicationController:

private
 def redirect
  redirect_to welcome_path
 end

任何控制器:

class AnyController < ApplicationController
 before_action :redirect, only: :about

 def about
 end
end

我现在有许多控制器使用相同的私有方法,并希望存储它的中心位置。你知道,保持它干嘛。将这些私有方法放置在从ApplicationController继承的任何控制器中重用的位置?如果这样的问题已经得到解答,请指出我。感谢。

1 个答案:

答案 0 :(得分:1)

  

将这些私有方法放在何处以在任何控制器中重用   继承自ApplicationController?

如果您希望从ApplicationController继承的类具有该方法,则只需将其放入ApplicationController

class ApplicationController < ActionController::Base

 private

 def redirect_to welcome_path
 end
end

class AnyController < ApplicationController
  # gets the redirect_to welcome_path method
end

这就是ApplicationController存在的原因。

Re:模块,它不需要在模块中,除非你最终想把它混合到ApplicationController之外的另一个类中。