試圖用authlogic設置一些基本鏈接。 這裏,他們是Ruby on Rails:路由問題:在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 %>
什麼也奇怪的是,destroy_user_session_path
不存在,而這也正是我寧願使用。但是,當我點擊註銷鏈接,它只是需要我localhost:3000/user_sessions/
這裏是我的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
所以,我很困惑,爲什麼new_user_session_path
作品,destroy_user_session_path
沒有。
供參考:我的路線:
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"
你能給我們一個「耙路」輸出嗎?此外,你的if/else在視圖中是向後的:如果當前用戶,你希望他們能夠註銷,否則,註冊/登錄 – brad 2010-10-28 15:25:59
這些都不會影響你的問題,但Jaime的回答是正確的 – brad 2010-10-28 15:28:45