Gem 在自己的 engine 中引用 devise

glorySpring · 2013年12月26日 · 最后由 glorySpring 回复于 2013年12月26日 · 2423 次阅读

因为要写一个小功能,需要在自己的 engine 中引用 devise,可是怎么用自己的 controller 重写 devise 的 sessions 和 registrations 这两个 controller 呢? 我是这么写的

devise_for :users, 
            class_name: 'MyApp::User',
            module: :devise ,
            :controllers  => { :registrations  =>  "my_app/users/registrations",
                               :sessions  => "my_app/users/sessions"}

可是在 views 中生成的表单的 action 却是

action="/session.user"

new_session_path(resource_name) 

生生的路径却是

http://localhost:3000/session/new.user

,全都错乱了....谁有这方面的经验呢?求指点......

再加点..... 这种情况下,我把

:controllers  => { :registrations  =>  "my_app/users/registrations",
                               :sessions  => "my_app/users/sessions"}

给注释掉,那就没问题了。但问题还是没解决,我想用自己写的 SessionsController.

#1 楼 @liwei78 谢谢,devise 给的例子我看过了,也是看这个设置的,但是还是没有重写 session 和 registration 的方法......很郁闷。

#3 楼 @liwei78 ok,我看看,谢谢

终于知道为啥了....犯二了... 之前的写法是正确的,只是我其余的设置错了...然后导致这个样子。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号