我目前有一個Rails如何執行和響應驗證結果的問題。我有一個用戶註冊表單。用戶可以在兩個不同的地方打這個表格。他們可能會從主頁或從users/new
。這兩種形式都會發布到同一個地方,因爲我試圖保持乾爽。Rails驗證條件重定向
users/new
頁面按預期工作。如果用戶有驗證問題,它將返回並填充表單。主頁上出現問題的位置。如果用戶有驗證問題,現在重定向到users/new
頁面。我更希望在主頁上時,我會將用戶返回到同一頁面並在那裏顯示驗證結果。控制器中有沒有辦法重定向到用戶所在的表單?
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'User was successfully created.') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" } # I'm thinking I can do something here?
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
我試圖改變render :action => 'new'
行重定向到URL的用戶,但並未奏效。有什麼我失蹤?
因此,當用戶在主頁上有驗證問題時,它不會重定向,它只會呈現錯誤的視圖...對嗎? – dontangg 2011-02-07 21:53:37
正確。驗證問題將導致用戶始終轉到用戶表單。即使原始表單位於索引頁上。不幸的是,需求指定用戶可以從兩個地方註冊。 – 2011-02-07 22:01:27