Ruby on rails 3 前\u筛选器未正确从父控制器继承?
如果这是一个愚蠢的问题,很抱歉,但我无法让我的过滤器继承Rails3文档所说的方式 具体而言,我有一个管理员控制器,它是通过以下方式生成的:Ruby on rails 3 前\u筛选器未正确从父控制器继承?,ruby-on-rails-3,Ruby On Rails 3,如果这是一个愚蠢的问题,很抱歉,但我无法让我的过滤器继承Rails3文档所说的方式 具体而言,我有一个管理员控制器,它是通过以下方式生成的: rails generate controller admin 我只向管理控制器添加了一个操作,即before过滤器和private过滤器方法 class AdminController < ApplicationController before_filter require_admin_creds def index end
rails generate controller admin
我只向管理控制器添加了一个操作,即before过滤器和private过滤器方法
class AdminController < ApplicationController
before_filter require_admin_creds
def index
end
private
def require_admin_creds
unless current_user && current_user.admin?
flash[:error] = ...
redirect_to ....
end
end
end
虽然我的管理员索引确实获得了过滤器,但管理员/模型索引(或任何其他操作)没有。这里发生了什么我必须排除的事情
提前感谢。将require\u admin\u creds设置为受保护的方法,而不是私有的。您是否更改了:
Admin::ModelController < ApplicationController
Admin::ModelController
到
Admin::ModelController
?
这将创建继承,而不是将模型控制器放入管理命名空间。请仔细检查语法。你有:
before_filter require_admin_creds
但我认为应该是:
before_filter :require_admin_creds
使用符号,而不是变量/方法名。我很确定before\u过滤器将只应用于定义的特定控制器。你认为应该从哪里继承?另外,生成admin/model是在admin命名空间中创建一个控制器。。。这不是继承。还不能对其他帖子发表评论,所以对肖恩·希尔斯说:是的,继承之前的过滤器。是的,我现在看到了。他仍然需要将Admin::ModelController更改为从AdminController继承,因为简单地将ModelController放置到Admin命名空间中并不会创建继承。请看下面我的答案。谢谢各位,你们两方面都是对的。我感谢新手的帮助。
before_filter require_admin_creds
before_filter :require_admin_creds