0

我有可在多个控制器上使用的身份验证代码。所以我想把认证代码放到一个超类中,然后让所有其他控制器扩展这个超类。然后我知道我们可以将它添加到 ActionController 类本身中。我们怎么能做到这一点?有没有办法改变预定义的类?

4

3 回答 3

1

实际上,您的所有控制器都应该已经继承自ApplicationController,而后者又继承自ActionController::Base。并且将身份验证代码包含在其中ApplicationController是非常惯用的,真的。

于 2010-02-07T19:09:19.153 回答
1

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

于 2010-02-07T19:11:22.703 回答
0

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

于 2010-02-07T19:11:06.170 回答