无法按路径要求让form_with传递:id

时间:2019-06-25 19:02:13

标签: ruby-on-rails forms

我在rails表单中使用form_with。 form_with的调用使用url:和model:参数,并使用url覆盖将作为模型默认值的控制器。表单中传递的内容不包含目标对象的ID,正如我从下面的代码中所期望的那样。

<%= form_with(url: admin_ride_path(@ride), model: @ride, local: true) do |form| %>

form_with(url: admin_ride_path(@ride), model: @ride, local: true) do |form|

提交表单以更新现有记录。我希望提交的路径是

PATCH /admin_ride/7   (where 7 is the id of the ride)

但它发送给

PATCH /admin_ride

没有路线。

1 个答案:

答案 0 :(得分:0)

  

请确保您的@ride变量具有id属性,而不是nil

form_with有两种工作方式。

1。如果未设置型号ID

例如,您的模型名称为User,并且视图中有一个@user变量,该变量未保存在数据库中(@ user.id为nil)。

在这种情况下,表单将使用POST方法提交给/ users/。

2。设置了模型ID

设置@user.id(数据库中存在记录)并且id例如1

在这种情况下,form_with会根据PATCH的请求自动在路线/ users / 1提交

希望有帮助。