我有这个链接来创建一个新页面:
<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
答案 0 :(得分:4)
link_to "new", :action => 'new', :parent_id => 1
...会给你:
/controller/new?parent_id=1
如果你弄乱路线,你可以这样做:
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
答案 1 :(得分:1)
要获取新参数而不更改路由,只需将其作为查询字符串传递:
new?parent_id=2
然后它将以params[:parent_id]