Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 形式为_的路由范围问题(部分)_Ruby On Rails_Routing_Scope_Form For - Fatal编程技术网

Ruby on rails 形式为_的路由范围问题(部分)

Ruby on rails 形式为_的路由范围问题(部分),ruby-on-rails,routing,scope,form-for,Ruby On Rails,Routing,Scope,Form For,正在尝试路由: scope :shortcut do resources :text_elems end 使用带局部模板的基本脚手架 *_form.html.erb* <%= form_for(@text_elem, :shortcut => @shortcut) do |f| %> ... *\u form.html.erb* @快捷方式)do | f |%> ... 问题是:当我调用编辑操作时,表单html显示为: <form ... action="/25

正在尝试路由:

scope :shortcut do
 resources :text_elems
end
使用带局部模板的基本脚手架

*_form.html.erb*
<%= form_for(@text_elem, :shortcut => @shortcut) do |f| %> 
...
*\u form.html.erb*
@快捷方式)do | f |%>
...
问题是:当我调用编辑操作时,表单html显示为:

<form ... action="/25/text_elems/25">

注意:新操作正确呈现表单操作:

<form ... action="/home/text_elems">

因此,当form_为进程阻塞时,my:shortcut参数似乎被:id参数压倒。现在,如果我手动将:url=>{…}设置为块的形式_,我就能够使用:shortcut参数正确地路由操作,但是我更愿意保持代码干燥,另外,如果这个问题确实是一个bug,我想向rails报告这个问题


其他人能确认这是一个bug吗?

实际上,您可以将值作为完整哈希传递,而不是试图依赖默认的to_参数(如果您只传递@text_元素,就会调用该参数)

@text_elem.to_param,:shortcut=>@shortcut})do | f |%>
但是,如果这实际上是一个嵌套资源,您还可以执行以下操作:

<%= form_for([@shortcut, @text_elem]) do |f| %> 

我遇到了同样的问题,上面的答案都没有帮助

这一页的最后一个答案对我来说很有用

<%= form_for([@shortcut, @text_elem]) do |f| %>