加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – RoR设计:sign_in总是返回无效的电子邮件/密码

发布时间:2020-12-16 20:29:36 所属栏目:百科 来源:网络整理
导读:每次登录时,我收到电子邮件/密码无效的错误消息. 路线: devise_for :usersdevise_scope :users do get '/users/sign_out' = 'devise/sessions#destroy',:as = :destroy_user_session post '/users/sign_in' = 'devise/sessions#create',:as = :user_session
每次登录时,我收到电子邮件/密码无效的错误消息.

路线:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读