其他参数传递给控制器
问题描述:
我有此链接创建一个新的页面:其他参数传递给控制器
<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
答
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
答
要获得一个新的参数,不改变路线,只是通过它作为查询字符串:
new?parent_id=2
那么这将是提供给你作为params[:parent_id]
WES感谢,这是一个非常干净,完整的答案! – rtacconi 2009-11-02 09:49:45