2009-04-17 32 views
0

我有一個行爲,它將通過link_to包含供應商類的.id。如何將URL中的ID傳遞給Ruby中的form_tag?

該操作是針對不同控制器進行評論的new()修改需要將來自URL的ID值和會話[:user_id]傳遞到數據庫中。

  • 如何獲取vendor.id的值?是否有可能不通過URL傳遞它,而是將它放在閃存中?

  • 我是否使用隱藏值來傳遞會話[:user_id]?

回答

1

我假設你可以從控制器操作中以params[:id]的身份訪問它?如果是這樣,您應該能夠在視圖中以params[:id]的身份訪問它。同上session[:user_id]

編輯:我想我可能誤解了你的問題。你是否想通過表單發回ID?或者可能沒有在網址中的ID?

+0

是的,我確實有傳遞給新的ID,但它沒有通過表單傳遞。我應該只使用隱藏的值嗎?似乎這就是人們的建議...雖然這不是特別的RESTful ... – AFG 2009-04-21 02:12:51

0

如果您要在控制器之間傳遞參數,通常應該將其作爲參數傳遞。

<%= link_to "Link to other controller", other_path(@other, :some_param => param_value) %> 

在你鏈接(這裏的節目)的動作,你就可以訪問:some_param爲PARAMS [:some_param]。

從表單開始,包含隱藏字段(只要您稍後檢查是否有效,因爲用戶可以提交任何內容)。

無論採用哪種方式,都不要使用閃存來存儲會話狀態 - 閃光燈僅用於用戶消息。

+0

如果has_many關係(例如vendor has_many reviews),我仍然可以使用review_path然後傳遞vendor_id => @ vendor.id嗎? – AFG 2009-04-18 18:49:04

相關問題