使用form_for(部分)路由范围问题

试图路线:

scope :shortcut do resources :text_elems end 

使用forms偏的基本脚手架

 *_form.html.erb*  @shortcut) do |f| %> ... 

问题是 :当我调用编辑操作时,表单html显示为:

 

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

  

因此,当form_for处理它的块时,我的:快捷方式param似乎被:id param打败了。 现在我能够使用:快捷方式参数正确路由,如果我在form_for块中手动创建:url => {…},但我希望保持代码干,再加上我要报告如果这确实是一个错误,这个问题到rails。

任何人都可以确认这是一个错误吗?

实际上,您可以将值作为完整哈希值传递,而不是尝试依赖于默认的to_param(如果您所做的只是传递@text_elem,则会调用它)

 <%= form_for({:id => @text_elem.to_param, :shortcut => @shortcut}) do |f| %> 

但是,如果这实际上是嵌套资源,您还可以执行以下操作:

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

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

本页的最后一个答案虽然对我有用…

https://rails.lighthouseapp.com/projects/8994/tickets/6736-problem-with-scoped-routes-and-form_for-helper