Gem devise 相关问题

Jsiguo · 2011年11月27日 · 最后由 Rei 回复于 2012年02月04日 · 3533 次阅读

我用 devise 做用户注册及登录当我点击登录时候出现下面错 NameError in Devise::SessionsController#create 网上找了下 有帖说要修改“可以通过修改 /config/initializers/cookie_verification_secret.rb中的secret key 来修正” 但我在/config/initializers/找不到 cookie_verification_secret.rb 文件 我用的 rails 是 3.1.3 在线求助

把完整的 Log 贴出来

undefined local variable or method `root_path' for #<Devise::SessionsController:0x00000004574fc8>
Rails.root: /home/gsm/rails-work/devisedemo

Application Trace | Framework Trace | Full Trace
Request

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"X0kgzO8B2+AEMsffoKLcdTstYOaPDBvWmTAFGQXfRPQ=",
 "user"=>{"email"=>"[email protected]",
 "password"=>"[FILTERED]",
 "remember_me"=>"0"},
 "commit"=>"Sign in"}
Show session dump

_csrf_token: "X0kgzO8B2+AEMsffoKLcdTstYOaPDBvWmTAFGQXfRPQ="
flash: #<ActionDispatch::Flash::FlashHash:0x00000004cd1320 @used=#<Set: {}>, @closed=false, @flashes={:notice=>"Signed in successfully."}, @now=nil>
session_id: "f85426884953ea3639bcaa4d9ed10acb"
warden.user.user.key: ["User", [1], "$2a$10$.tmwyk7zABbzjP.sDA./6O"]
Show env dump

GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_CHARSET: "GBK,utf-8;q=0.7,*;q=0.3"
HTTP_ACCEPT_ENCODING: "gzip,deflate,sdch"
HTTP_ACCEPT_LANGUAGE: "zh-CN,zh;q=0.8"
HTTP_CACHE_CONTROL: "max-age=0"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "localhost"
SERVER_NAME: "localhost"
SERVER_PROTOCOL: "HTTP/1.1"

undefined local variable or method `root_path'

是否有在路由中设置 root?

没有设置 我很菜

你是 3.1.3 么?我不记得怎么解决的了,railscast 那个视频的做法好像没用,把 route 最后那行(match 'controller'xxxxxxxxxxxxxxxxxx)uncommen 一下试试

是将这行注释解开吗

match ':controller(/:action(/:id(.:format)))'

我的 Rails 是 3.1.3

#6 楼 @Jsiguo root :to => "home#index" devise:install 之后的提示你没有看

看了有 4 条提示 但我好想没有改什么 刚学 ror 很菜

然后在 route.rb 里面设置 rout:to 吧,这样就可以了

这个地方我已经改为了 root :to => 'users#index'

#10 楼 @Jsiguo 设置了 root 之后出现了什么错误呢?

PS:其实 devise 这个 gem 非常复杂,我也玩不转,我觉得还是自己写用户认证逻辑比较好,现在有 ActiveModel::SecurePassword 这个模块,已经处理了最麻烦的那部分。

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