2017-10-02 4 views
0

J'utilise Bcrypt et has_secure_password pour les authentifications utilisateur dans une application Rails basique. Pour toutes mes autres formes dans l'application, j'utilise le gem bootstrap_form qui me permet d'avoir de belles formes de bootstrap plutôt que les mauvaises par défaut.Utilisation de Bootstrap avec des sessions Bcrypt sous Rails

Le problème est que Bcrypt ne semble pas autoriser cela pour le formulaire de connexion de session. Ce serait vraiment bien si je pouvais intégrer Bootstrap dans ce formulaire de connexion pour ne pas avoir besoin de jouer avec css pendant longtemps.

Mes sessions/new.erb ressemble à ceci:

<%= form_tag sessions_path do %> 
<h3>Log In</h3> 
<div class="form-group"> 
<%= text_field_tag :email, params[:email], placeholder: 'Email', 
:class => 'class_name' %> 
</div> 
<div class="field"> 
<%= password_field_tag :password, params[:password], placeholder: 
'password', :class => 'class_name' %><br> 
<%= link_to 'Sign up', new_user_path %> 
</div><br> 
<div class="actions"><%= submit_tag "Log In" %></div> 
<% end %> 

Et mon contrôleur de sessions ressemble à ceci:

def create 
user = User.find_by_email(params[:email]) 
if user && user.authenticate(params[:password]) 
session[:user_id] = user.id 
redirect_to new_comment_path, notice: "Logged in!" 
else 
    flash.now.alert = "Email or password is invalid" 
render "new" 
end 
end 

def destroy 
session[:user_id] = nil 
redirect_to root_url, notice: "Logged out!" 
end 

Merci :-)

+0

ce que vous entendez par « Bcrypt ne semble pas permettre cela pour les sessions Formulaire de connexion"? – EJ2015

+0

Quelle erreur avez-vous? Il est plus susceptible d'être un problème dans votre contrôleur car c'est là que Bcrypt est activé. –

+0

ça a l'air bien, à quoi exactement les erreurs que vous faites face? – 7urkm3n

Répondre

0

Gem Documentation LINK

Mais vous faites probablement

<%= bootstrap_form_tag sessions_path do %>,

au lieu de

<%= bootstrap_form_tag url: sessions_path do |f| %>

Réponse: Essayez comme cette

<%= bootstrap_form_tag url: sessions_path do |f| %> 
    <%= f.email_field :email %> 
    <%= f.password_field :password %> 
    <%= f.check_box :remember_me %> 
    <%= f.submit "Log In" %> 
<% end %> 
+0

J'aurais dû vérifier la documentation - merci! – Robert

+0

@Robert Np, optez toujours pour les docs en premier. Cela gagnera du temps. – 7urkm3n