我在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
没有路线。
答案 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提交
希望有帮助。