我们如何在rails中覆盖ActionController以使某些方法通用?

时间:2010-02-07 19:05:16

标签: ruby-on-rails actioncontroller

我有几个控制器可用的身份验证代码。所以我想把Authentication代码放到SuperClass中,然后让所有其他控制器扩展这个SuperClass。然后我知道我们可以在ActionController类中添加它。我们怎么做?有没有办法改变预先定义的类?

3 个答案:

答案 0 :(得分:1)

实际上,所有控制器都应该已经从ApplicationController继承,而ActionController::Base继承自ApplicationController。将{{1}}中的身份验证代码包含在内是非常惯用的。

答案 1 :(得分:1)

您应该将这些方法添加到ApplicationController类中,该类存在于app / controllers / application_controller.rb中,并且是所有项目控制器的直接超类(假设您使用script / generate创建了控制器并且没有更改超类)。

答案 2 :(得分:0)

所有控制器都已扩展ApplicationController,因此只需在before_filter中添加一个授权方法和ApplicationController调用该方法,您就可以为所有控制器设置。