ruby-on-rails - 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| %> 
...

问题是:当我调用编辑操作时,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/

相关文章:

C++ 指针/对象错误

android - 如何将 ViewModelScope 等异步协程范围的值返回到您的 UI?

ruby-on-rails - 无法安装 ruby gem 约翰逊

c# - 路线总是去第一个 maproute

php - 如何编写 artisan 命令来在 Laravel 中搜索特定的路由名称

.net - 如何使用 ASP.NET 路由路由树结构的 URL?

c# - C#、Java 中的变量作用域

javascript - 动态更改 HTML 表的 ID

ruby-on-rails - 无法捆绑安装 ruby​​ - 卡住获取 https ://rubygems. org/

ruby-on-rails - Ruby Rails、JSON - 如果键存在则匹配结果