不知道自己该不该新手自称。学习 ruby 几个月。最近用 ror 做项目。之前做了几年的 javaweb。
遇到的问题是这样的:
项目用 rails admin 做系统管理后台,因此需要再加一个 admin 的角色来登录这个后台管理系统。(已经有一个 user 的 devise)
我先贴下代码
1)$ rails g devise Administrator
2) $ rails g devise:controllers administrators
3) config/routes.rb:
devise_for :administrators, :controllers => {
:registrations => "administrators/registrations",
:sessions => "administrators/sessions",
:passwords => "administrators/passwords"
}
4) config/initializers/rails_admin.rb:
config.authenticate_with do
warden.authenticate! scope: :administrator
end
config.current_user_method(&:current_administrator)
5) app/controllers/application_controller.rb:
def require_administrator_login
if current_administrator.blank?
respond_to do |format|
format.html { authenticate_administrator! }
format.json { head(:unauthorized) }
end
end
end
=================== 我发现当程序运行到 app/controllers/administrators/sessions_controller.rb 的 create 方法第一行 《self.resource = warden.authenticate!(auth_options)》这句报错。 报的错是(图中的‘aa’我是为了调试程序而故意写的)
这是 log
================== 查了很多文档,也没什么大的头绪。不知大家有什么好的建议?