2011-04-16 63 views
0

我需要建立一個控制器內一個網址給嵌套的資源:Rails的url_for嵌套資源ID,而不是對象

http://0.0.0.0:3000/account/1/address/new

我可以這樣做:new_account_address_path(@account),但我在裏面在上下文(params [:id])上擁有帳戶ID的控制器我不想從db中加載對象來構建url。

什麼是最好的方式來擴展扶手到這個:new_account_address_path(params [:id]),並有 http://0.0.0.0:3000/account/1/address/new

我也不想創建一個虛擬實例。

回答

2

您應該能夠傳遞路線參數作爲一個散列:

new_account_address_path(:account_id => params[:account_id]) 
+0

謝謝,它的工作原理,我有另外一個問題是,我想使用url_for爲創建行動,但這個助手是不是生成:create_account_address_path(:account => params [:account_id])我認爲原因是因爲URL與索引操作相同,只有動詞(post)不同,所以生成資源的最佳方式是什麼在動作中創建網址? – Michel 2011-04-16 18:07:10

+0

我想你想使用'account_address_path' helper。一定要像以前一樣傳入'account_id'。我也會看[本指南](http://edgeguides.rubyonrails.org/form_helpers.html#binding-a-form-to-an-object)。 – tjwallace 2011-04-16 18:12:28