尝试路线:
scope :shortcut do
resources :text_elems
end
使用基本脚手架和部分形式
*_form.html.erb*
<%= form_for(@text_elem, :shortcut => @shortcut) do |f| %>
...
问题是:当我调用编辑操作时,html表单显示为:
<form ... action="/25/text_elems/25">
注意:新操作将正确呈现表单操作:
<form ... action="/home/text_elems">
因此,当form_for处理它的块时,我的:shortcut参数似乎被:id参数压倒了。现在,如果我在form_for块中手动使:url => {...},则可以使用:shortcut参数正确路由,但是我希望代码保持干燥,并且我想报告如果确实是一个错误,那么这个问题就会发生。
其他人可以确认为错误吗?
最佳答案
实际上,您可以将值作为完整的哈希值传递,而不是尝试依赖默认的to_param(如果您所做的只是传递@text_elem,则将调用此值)
<%= form_for({:id => @text_elem.to_param, :shortcut => @shortcut}) do |f| %>
但是,如果这实际上是嵌套资源,则还可以执行以下操作:
<%= form_for([@shortcut, @text_elem]) do |f| %>
关于ruby-on-rails - form_for(部分)的路由范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3371701/