Ruby on rails 设计;“登录”;“表格显示”;无效的电子邮件或密码“;错误消息不正确
我正在开发一个(相对)简单的Rails应用程序。我正在使用Desive gem处理用户会话。每当我导航到localhost:3000/users/sign_in时,我都会看到designe的错误消息,上面写着“无效的用户名或密码”。即使在第一次尝试登录后也会发生这种情况,之前没有登录尝试。我试图清除我的web浏览器的缓存,但没有结果。可以在中找到整个代码库,但以下是一些可能相关的代码片段: app/views/layouts/application.html.erb:Ruby on rails 设计;“登录”;“表格显示”;无效的电子邮件或密码“;错误消息不正确,ruby-on-rails,ruby,session,error-handling,devise,Ruby On Rails,Ruby,Session,Error Handling,Devise,我正在开发一个(相对)简单的Rails应用程序。我正在使用Desive gem处理用户会话。每当我导航到localhost:3000/users/sign_in时,我都会看到designe的错误消息,上面写着“无效的用户名或密码”。即使在第一次尝试登录后也会发生这种情况,之前没有登录尝试。我试图清除我的web浏览器的缓存,但没有结果。可以在中找到整个代码库,但以下是一些可能相关的代码片段: app/views/layouts/application.html.erb: ... #section
...
#section where Devise alrts are displayed
<% if notice %>
<p class="alert alert-success"><%= notice %></p>
<% end %>
<% if alert %>
<p class="alert alert-danger"><%= alert %></p>
<% end %>
...
<div class="container">
<h2>Sign in</h2>
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<%= f.email_field :email, autofocus: true, placeholder: "email", class: "form-control login-credentials" %><br>
<%= f.password_field :password, autocomplete: "off", placeholder: "password", class: "form-control login-credentials" %></br>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<div class="btn-group">
<%= f.submit "Sign in", class: "btn btn-primary" %>
<% end %>
<div class="btn-group">
<%= render "devise/shared/links" %>
</div>
请告诉我是否有任何信息可以帮助解决此问题。我将更改以下内容: -- --
#app/layouts/application.html.erb
#删除引用以设计警报
#app/views/designe/sessions/new.html.erb
...
您可以我通过将
按钮的:method
更改为
,将包含登录页面链接的链接从默认值:post
更改为:get
,解决了此问题。我认为使用:post
会导致尝试使用空白凭据登录,从而显示错误消息。以下是我的代码修复:
<div class="btn-group">
<%= button_to 'Sign in', new_user_session_path, method: :get, class: :'btn btn-primary btn-lg' %>
</div>
我做了您建议的更改,但是现在我没有看到任何Desive错误消息,即使我应该看到。嗯,好的!这是用于sign\u in
/正确的/users/sign\u in
页面。我解决了问题,请参阅我的答案。
#config/routes.rb
root 'welcome#index'
devise_for :users
resources :addresses do
collection do
get 'api/:key', action: :api
end
end
resources :staticpages, only: [] do
collection do
get :faq
get :api
end
end
#app/layouts/application.html.erb
#remove references to devise alerts
#app/views/devise/sessions/new.html.erb
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
...
<% end %>
<div class="btn-group">
<%= button_to 'Sign in', new_user_session_path, method: :get, class: :'btn btn-primary btn-lg' %>
</div>