首次使用嵌套资源 必须调整视图中的所有路径,但现在我发现我必须为 form_for(@object) 调整对象,因为这些对象暗示路径 这是form_for被贬低的原因之一吗?
否
form_for
被贬低的原因是form_with
取代了form_for
和form_tag
,它们基本上做了类似的工作,但签名完全不同。
form_with
可以处理表单通过模型选项绑定到对象或没有对象并生成表单构建器对象form_tag
没有这样做的情况。与form_tag
不同,您不需要使用具有非常笨重界面的低级输入助手。
将来,当具有疯狂签名的旧方法被采用关键字参数的更现代的等价方法所取代时,我们可能会发生更多类似的变化。
当您使用form_with(model: @thing)
时,使用多态路由帮助程序查找路由的行为仍然存在,该将使用@thing.to_model.model_name.param_key
来猜测是否存在名为things_path
或thing_path
的路由帮助程序。这种行为非常符合 Rails 的配置方法约定,并且不太可能消失。
这有效: <%= form_with(model: @post, url: [@post, @comment]) do |f|%>