ruby on rails - Bootstrap sign in form integrated with Devise not not creating new user session -
i found nice looking bootstrap sign in form rails app using devise gem. converted rails form_for
helper straight html using bootstrap classes.
original form
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) |f| %> <div class="field"> <%= f.label :email %><br /> <%= f.email_field :email, autofocus: true %> </div> <div class="field"> <%= f.label :password %><br /> <%= f.password_field :password, autocomplete: "off" %> </div> <% if devise_mapping.rememberable? %> <div class="field"> <%= f.check_box :remember_me %> <%= f.label :remember_me %> </div> <% end %> <div class="actions"> <%= f.submit "log in" %> </div> <% end %>
form_for converted html:
<div class="container"> <div id="loginbox" style="margin-top:50px;" class="mainbox col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2"> <div class="panel panel-info" > <div class="panel-heading"> <div class="panel-title">sign in</div> <div style="float:right; font-size: 80%; position: relative; top:-10px"><a href="/users/password/new">forgot password?</a></div> </div> <div style="padding-top:30px" class="panel-body" > <div style="display:none" id="login-alert" class="alert alert-danger col-sm-12"></div> <form action="/users/sign_in" id="new_user" class="form-horizontal" role="form" method="post"> <div style="margin-bottom: 25px" class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> <input id="user_email" type="email" class="form-control" name="user[email]" value="" placeholder="email"> </div> <div style="margin-bottom: 25px" class="input-group"> <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span> <input id="user_password" type="password" class="form-control" name="user[password]" placeholder="password"> </div> <div class="input-group"> <div class="checkbox"> <label> <input id="user_remember_me" type="checkbox" name="user[remember_me]" value="1"> remember me </label> </div> </div> <div style="margin-top:10px" class="form-group"> <!-- button --> <div class="col-sm-12 controls action"> <input type="submit" id="btn-login" class="btn btn-success" name="commit" value="log in"> </div> </div> <div class="form-group"> <div class="col-md-12 control"> <div style="border-top: 1px solid888; padding-top:15px; font-size:85%" > don't have account! <a href="/users/sign_up" onclick="$('#loginbox').hide(); $('#signupbox').show()"> sign here </a> </div> </div> </div> </form> </div> </div> </div> </div>
my problem when click on login button on html form: <input type="submit" id="btn-login" class="btn btn-success" name="commit" value="log in">
it's not creating new_user_session
. nothing happens except redirects me index page.
by default, after signing in user, confirming account or updating password devise
redirects root path of application, unless specified otherwise. if index
page root path (as haven't mentioned in question) log in must successful, i.e., user session created. can override after_sign_in_path_for
method in applicationcontroller
customize redirect hooks.
for example:
class applicationcontroller < actioncontroller::base #.. def after_sign_in_path_for(resource) user_profile_path(resource) ## <<-- specify path want redirect after sign in end end
my problem when click on login button on html form: it's not creating new_user_session. nothing happens except redirects me index page.
i suppose expecting message in case sign in success/failure. happen, make sure displaying flash messages in views devise uses flash messages let application users know if sign in successful or failure. best place in layout files.
for example: in app/views/layouts/application.html.erb
<% flash.each |name, msg| %> <%= content_tag :div, msg %> <% end %>
another pointer add following code within sign in form, if reason sign in fails, user gets see errors on same page:
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) |f| %> <%#...%> <%= devise_error_messages! %> <%# add display error messages %> <%#...%> <%end%>
Comments
Post a Comment