2009-01-15 56 views
0

我目前正在兩個不同的視圖重新使用部分。相同的部分在多個視圖返回到它被稱爲的任何視圖

視圖A

視圖B

局部屬於模型A,但與B型的關聯,因此是適用於模型B爲好。

它包含一個表單,當提交數據時,它總是將用戶重定向到視圖A.但是,當我從視圖B提交表單時,我想將視圖B重新導向到視圖B而不是表單A.

它現在重定向到視圖A的原因是因爲這是此表單所屬的模型。因此,當發佈時,它會與控制器A進行交談,並使用重定向將用戶轉到a_url。

如何告訴我的表單(或更多以便控制器操作)將用戶重定向到他們來自哪裏?

謝謝!

回答

2

已解決。

我向我的表單中添加了一個隱藏字段,其中包含部分呈現位置的控制器名稱,然後我的respond_to_ block確定將用戶發送到哪裏。

查看代碼:

<%= hidden_field_tag 'submitted_from', "#{controller.controller_name}" %> 

我的控制器代碼:

if params[:submitted_from] == 'A' 
    redirect_to a_url 
else 
    redirect_to b_url 
end 
0

而不是使用一個隱藏的標籤,你可能希望將這個會話:

session[:submitted_from] = new_model_url 

和在其他動作中。

redirect_to(session[:submitted_from]) 
session[:submitted_from] = nil 

轉換表單變量非常容易,但它可能更難(但並非不可能)僞造一個會話。如果是我的申請,我會走這條路。

相關問題