设计登录没有工作/没有错误消息

时间:2016-06-01 11:19:56

标签: ruby-on-rails ruby ruby-on-rails-4 devise

伙计我到处寻找解决这个问题但我运气不好。

我有一个设计登录系统,我在开发中注册了一个帐户admin@admin.com,在日志中我收到了确认电子邮件,我收到了那封电子邮件,所以我的帐户得到了确认。现在,当我尝试登录控制台时,给我这条消息:

Started GET "/users/sign_in?utf8=%E2%9C%93&authenticity_token=iHIEXxGHWaIdtAGhcZ7EKvEEEYGmoEfgr1K8NcKb9nFIXuD6dpMVimOO6aBEdZJUWv9Irt%2FT0vnaucjW%2BgmJQQ%3D%3D&user%5Bemail%5D=admin%40admin.com&user%5Bpassword%5D=[FILTERED]&user%5Bremember_me%5D=0&commit=Log+in" for ::1 at 2016-06-01 13:11:54 +0200
Processing by Devise::SessionsController#new as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"iHIEXxGHWaIdtAGhcZ7EKvEEEYGmoEfgr1K8NcKb9nFIXuD6dpMVimOO6aBEdZJUWv9Irt/T0vnaucjW+gmJQQ==", "user"=>{"email"=>"admin@admin.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"}
  Rendered devise/sessions/new.html.erb within layouts/application (3.7ms)
  Rendered partials/_header.html.erb (0.5ms)
  Rendered partials/_menu.html.erb (0.2ms)
  Rendered shared/_breadcrumbs.html.erb (0.0ms)
  Rendered partials/_footer.html.erb (0.0ms)
  Rendered partials/_javascripts.html.erb (0.0ms)
Completed 200 OK in 143ms (Views: 52.6ms | ActiveRecord: 0.0ms)

此后页面刷新,我没有登录。 当我重新发送确认说明时,它已经确认电子邮件已经确认,请尝试登录'

我的签到表格如下:

<% provide(:title, "Sign in") %>
<div class="col-md-12">
  <form class="sign-box">
    <header class="sign-title"> Sign in </header>

    <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>

        <% if devise_error_messages!.present? %>
            <div class="alert alert-warning alert-icon alert-close alert-dismissable fade in" role="alert">
              <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
              <i class="font-icon font-icon-warning"></i>
              <%= devise_error_messages! %>
            </div>
        <% end %>

      <div class="field form-group">
        <%= f.label :email, class: 'float-left' %><br />
        <%= f.email_field :email, class: 'form-control', autofocus: true %>
      </div>

      <div class="field form-group">
        <%= f.label :password, class: 'float-left' %><%= link_to 'Forgot your password?', new_user_password_path, class: 'float-right reset' %>
        <%= f.password_field :password, class: 'form-control', autocomplete: "off" %>
      </div>

      <% if devise_mapping.rememberable? -%>
        <div class="field form-group">
          <div class="checkbox float-left">
            <%= f.check_box :remember_me %>
            <%= f.label :remember_me %>
          </div>
        </div>
      <% end -%>

      <div class="actions">
        <%= f.submit "Log in", class: 'btn btn-rounded' %>
      </div>

        <p class="sign-note">New to our website? <%= link_to "Sign Up", new_user_registration_path %></p>
    <% end %>
  </form>
</div>

那可能是什么人?在尝试了好几天后,我没有选择。

2 个答案:

答案 0 :(得分:1)

如果在提交表单后给出服务器的响应, 然后你搞砸了什么。检查你的路线。

当我们提交登录表单时,服务器应显示

Processing by Devise::SessionsController#create as HTML

此外,当提交表单时,请求处于POST状态,如下所示

Started POST "/users/sign_in" for ::1 at 2016-06-01 17:11:36 +0545

但您的服务器正在发送Get请求。

Started GET "/users/sign_in?utf8=%E2%9C%93&authenticit...
  

路径:new_user_session,动词:GET,url:/ users / sign_in(。:format)

路径应为user_session_path,并带有动词POST

<强>更新: 试试这个,看看会发生什么。

form_for( :user, url: user_session_path) do |f|

<强> UPDATE2: 我也发现,如果您已经登录,并且仍然尝试在没有注销的情况下再次登录,则会再次重定向到SessionsController #new。尝试重新启动服务器并在首次登录时观察服务器。

答案 1 :(得分:1)

答案一直很简单

我必须将<form class="sign-box">更改为<div class="sign-box"> 显然你不能在html表单属性中有一个ruby form_for标签。

相关问题