我在用户模型中定义了两个角色:
User.role == admin
or
User.role == basic
在我的应用程序控制器:
中include MobilizedController
在 lib / mobilized_controller.rb :
module MobilizedController
extend ActiveSupport::Concern
included do
before_filter :set_basic_request, :if => :basic_logged_in?
end
private
def set_basic_request
request.format = :basic
prepend_view_path "app/views/basic"
end
def basic_logged_in?
current_user.role == 'basic'
end
end
当我登录时,这一切都很好,它正确设置Mime类型并呈现我的基本视图。 不幸的是,当我没有登录时,我得到了:
nil的未定义方法'角色':NilClass
我猜这意味着current_user没有设置,因此调用它就不起作用。
有没有人对此有任何建议?如果用户未登录,我需要能够呈现默认登录页面,然后在登录时设置Mime类型。
任何帮助?
答案 0 :(得分:0)
在basic_logged_in的示例中,将current_user.role设置为basic。您似乎没有为管理员或未登录的用户设置角色。
因此,如果您未登录或以管理员身份登录,则不会设置current_user.role。