Je tente simplement de mettre en place des liens de base avec authlogic. ici, ils sontRuby on Rails: problème de routage: l'action n'est pas visible dans link_to
<% if current_user %>
<div class="register_new_user">
<%= link_to "Register", new_user_path %>
</div>
<div class="login_existing_user">
<%= link_to "Log In", new_user_session_path %>
</div>
<% else %>
<div class="logout">
<%= link_to "Log Out", :controller => :user_sessions, :action => :destroy %>
</div>
<% end %>
ce qui est aussi étrange est que destroy_user_session_path
n'existe pas, et est ce que je préfère utiliser. Mais quand je clique sur le lien de déconnexion, il me faut pour localhost:3000/user_sessions/
voici mon contrôleur user_sessions:
class UserSessionsController < ApplicationController
before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => :destroy
def new
@user_session = UserSession.new
end
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = "Login successful!"
redirect_back_or_default account_url
else
render :action => :new
end
end
def destroy
current_user_session.destroy
flash[:notice] = "Logout successful!"
redirect_back_or_default new_user_session_url
end
end
, je suis confus quant à pourquoi new_user_session_path
œuvres et destroy_user_session_path
ne fonctionne pas.
pour référence: mes itinéraires:
map.resource :user_session
map.resource :account, :controller => "users"
map.resources :users
map.root :controller => "info", :action => "home"
map.connect "/home", :controller => "info", :action => "home"
pouvez-vous nous donner une sortie 'rake routes'. Aussi, votre if/else est en arrière dans la vue: si l'utilisateur actuel, vous voulez qu'ils puissent se déconnecter, sinon, inscrivez-vous/login – brad
Rien de tout cela n'affecte votre problème, cependant, la réponse de Jaime est correcte – brad