我正在使用AuthLogic在我的Rails應用程序中對用戶進行身份驗證。該部分正確設置並正確工作。如何在Rails中重新呈現操作時在頁面URL中維護相同的控制器和操作?
我有以下途徑定義:
map.login '/account/login', :controller => :user_sessions, :action => :new
調用耙路線返回我的期望:
login /account/login {:controller=>"user_sessions", :action=>"new"}
當有人提出一個登錄,它調用UserSessionsController.create:
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
如果@ user_session.save失敗,則適當的錯誤消息出現在sc穎。但是,瀏覽器URL也會更改爲「http:// localhost:3000/user_session」,而不是停留在「http:// localhost:3000/account/login」上。
我認爲問題是我正在給渲染方法。我應該喂什麼?
我很欣賞這個建議,但是我發現強迫性的不一致令人不安。任何在頁面上出現錯誤並想要報告的人都將最終鏈接到單擊鏈接無效的頁面。正如你所說,使用redirect_to並堅持錯誤也是一樣。 – Shaun 2010-12-05 16:01:12
沒有其他選擇。數據必須以某種方式持續存在。要麼你不做重定向,要麼將它存儲在某處並重定向。 – 2010-12-07 20:06:53