我試圖通過開發自己的自定義CMS來學習RoR(是的,是的......),並且我想要做一件簡單的事情,但無法拿出一個乾淨解。呈現與路由匹配的相同頁面
我的路線文件有下列搭配:
match '/login' => "sessions#new"
它所做的是,在命中的「http://本地主機:3000 /登錄」,是讓我登錄到創建一個新的會話。它完美...
但是,這是我的會話控制器的樣子:
class SessionsController < ApplicationController
def create
@username = params[:session][:username]
@password = params[:session][:password]
@rUser = User.find_by_username(params[:session][:username])
#if user && user.authenticate(params[:session][:password])
if @rUser && Digest::SHA2.hexdigest(@password) == @rUser.password
# Sign the user in and redirect to the user's show page.
redirect_to users_path, :flash => { :notice => "Logged in as #{@username}." }
else
# Create an error message and re-render the signin form.
redirect_to '/login', :flash => { :error => "Login failed. Either the username or password was incorrect." }
end
end
end
如果你看看在「其他」語句在我的if-else條件,你會看到我使用redirect_to'/ login'在登錄失敗時顯示相同的表單。有沒有更好的方法來創建一個永久鏈接到'/ login'而不是必須使用一個字符串,因爲如果我決定在將來更改URL,我寧願不必在多個地方進行更改。
對不起,如果它不明確!隨意要求進一步的代碼(沒有表現出恐懼它的可悲性)。
我知道,接收提示信息,redirect_to的需要使用(渲染不使用閃光燈的信息工作,對嗎?),但如果我想用「渲染{call}「,我怎麼去做這件事。我正在瀏覽路由指南@ rubyonrails.org,但無法找到* easy *解決方案(3.6命名路由),只有在您回答後我才瞭解:as =>:blah – Minja 2012-08-03 06:59:24