J'ai une vue qui a un bouton "J'aime" dessus. Avant d'afficher ce bouton, il vérifie si l'utilisateur l'a déjà aimé ou non. C'est le code pour ça comme "bouton".Problème avec la recherche de current_user
<% if current_user.can_like_photo?(@photo) %>
<%= link_to "Like", :controller => "likes", :action => 'create', :method => "post", :id => @photo.id %>
<% else %>
<span class="caption">✓ Liked</span>
<% end %>
Cela fonctionne très bien; SI il y a un current_user
. Cependant, si vous n'êtes pas connecté, il crache une exception car il n'y a pas de current_user
. L'exception est interceptée avant le chargement de la page, pas lorsque le lien similaire est cliqué. Juste pour être clair. Ceci est ma méthode current_user
dans mon application_helper:
def current_user
User.find(session[:user_id])
end
Quelle est la meilleure façon de faire ce travail s'il n'y a pas current_user
connecté?
Eh oui, cela a fonctionné pour moi. Je ne suis pas familier avec 'rescue' mais je vais le chercher. Merci! –
La méthode find déclenchera une exception ActiveRecord :: RecordNotFound si l'enregistrement n'existe pas. le sauvetage attrape l'exception. Le faux est là car la dernière ligne exécutée est toujours retournée. S'il vous plaît voir mes modifications pour spécifier quelle exception vous attrapez. – Gazler