很抱歉,如果这可能是一个愚蠢的问题,但我无法让我的过滤器继承Rails 3文档所说的方式。
具体来说,我有一个通过以下方式生成的管理员控制器:
rails generate controller admin
我只向管理员控制器添加了一个操作,前一个过滤器&私有过滤方法
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
接下来我在admin部分下创建了我的嵌套资源:
rails generate scaffold admin/model
虽然我的管理员索引确实正在获取过滤器,但管理员/模型索引(或任何其他操作)却没有。我必须排除在幕后发生的事情?
提前致谢。
答案 0 :(得分:4)
使require_admin_creds成为受保护的方法,而非私有。
答案 1 :(得分:1)
你有没改变:
Admin::ModelController < ApplicationController
到
Admin::ModelController < AdminController
这会创建继承,而不是将模型控制器放入admin命名空间。
答案 2 :(得分:0)
仔细检查您的语法。你有:
before_filter require_admin_creds
但我认为应该是:
before_filter :require_admin_creds
使用符号而不是变量/方法名称。