ruby-on-rails – RoR设计:sign_in总是返回无效的电子邮件/密码
每次登录时,我收到电子邮件/密码无效的错误消息.
路线: devise_for :users devise_scope :users do get '/users/sign_out' => 'devise/sessions#destroy',:as => :destroy_user_session post '/users/sign_in' => 'devise/sessions#create',:as => :user_session end resources :users 用户型号: devise :database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable attr_accessor :password attr_accessible :first_name,:last_name,:email,:password,:password_confirmation,:gender,:remember_me 视图: <% if signed_in?(:user) %> Hi <%= current_user.first_name %>. | Not you? <%= link_to 'Sign out',destroy_user_session_path,:method => :delete %> <% else %> <%= link_to 'Sign up',signup_path %> or <%= link_to 'Sign in',user_session_path,:method => :create %> <% end %> 我尝试改变路线: get '/users/sign_in' => 'devise/sessions#new',:as => :new_user_session 并改变各自的路径,但这并没有改变任何事情. 我甚至更改了视图中的代码: if signed_in?(:user) 至: if user_signed_in? 并结合了这些事情,没有任何工作. 我也要求设计人员处理确认,我通过将生成的链接复制到浏览器,并且以用户身份第一次登录.它还允许我通过电子邮件确认链接更改密码,这也会在更改密码时签名.但一旦我退出登录,它告诉我,电子邮件/密码再次无效. 谁能帮忙? 我使用rails 3.0.7,devise 1.4.5,capybara 1.1.1,cucumber 1.0.6,mysql2 0.2.6和rake 0.8.7,如果这有帮助任何人. 谢谢 编辑: 为了帮助未来的用户,实际上没有什么问题的宝石.工作正常问题在于我的数据库.由于某些原因,它正在从数据库中选择一个NULL电子邮件,而不是拉出我正在尝试登录的用户的信息.我正在找出如何解决这个问题,一旦我找出结果,它将更新. 解决方法
我在Devise的全新安装中遇到了类似的问题,但是我发现,如果我运行捆绑更新,然后重新启动我的开发服务器它可以工作.
起初我没有在development.log中看到数据库查询,但是一旦更新了我的Gemfile(确保我使用最新的Devise gem)并重新启动了服务器,我现在看到我的日志文件中的数据库查询,它的工作原理(神奇). 希望有帮助. Btw,不知道这是否会帮助你…但这些是我的路线.路线 devise_for :users,:path_names => { :sign_up => "register",:sign_in => "login",:sign_out => "logout",:settings => "settings" } devise_scope :user do get "login",:to => "devise/sessions#new" get "register",:to => "devise/registrations#new" get "settings",:to => "devise/registrations#edit" get "logout",:to => "devise/sessions#destroy" end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |