2009-10-29 615 views
2

我有此鏈接創建一個新的頁面:其他參數傳遞給控制器​​

<p><%= link_to "Add a page", :action => "new" %></p> 

稱爲控制器中的代碼是這樣的:

def new 
    @page = Page.new 
    @visuals = Visual.find(:all) 
end 

我想傳遞一個附加參數以預先設定的形式的領域,像這樣:

<p><%= link_to "Add a page", :action => "new/parent_id/2" %></p> 

,並在控制器

def new 
    @page = Page.new 
    @page.parent_id = params[:parent_id] 
    @visuals = Visual.find(:all) 
end 

回答

4
link_to "new", :action => 'new', :parent_id => 1 

.. 。會給你:

/controller/new?parent_id=1 

如果你把w第i個路線,你可以這樣做:

map.new_page_from_parent "/new_from_parent/:parent_id" 

...並使用像這樣:

link_to "new", new_page_from_parent_path(:parent_id => 1) 

# gives 
/new_from_parent/1 

# accessed via 
params[:parent_id] => 1 
+0

WES感謝,這是一個非常乾淨,完整的答案! – rtacconi 2009-11-02 09:49:45

1

要獲得一個新的參數,不改變路線,只是通過它作爲查詢字符串:

new?parent_id=2 

那麼這將是提供給你作爲params[:parent_id]

相關問題