如何在Rails中将URL路径传递给form_with部分?

时间:2018-06-30 21:48:20

标签: ruby-on-rails

我正在尝试呈现表单并将URL和方法传递给它

home / index.html.erb

<%= render partial: "rides/form", locals: { url: rides_path, method: :post } %>

rides / _form.html.erb

<%= form_for(action: @ride, local: true, url: url, method: method) do |form| %>

错误:

undefined local variable or method `url' for #<#<Class:0x00007fec9aae15f8>:0x00007fec9ab30e00>
Did you mean?  URI

2 个答案:

答案 0 :(得分:2)

Rails是超级魔术,如果您使用现有的实例变量(@ride),则不必显式传递URL。试试

<%= render "rides/form" %>在您的home / index.html.erb文件中

,然后在“ rides / _form.html.erb”中使用:

<%= form_for @ride do |f| %> ...

form_for帮助程序应通过POST自动将数据发送到Rides控制器中的#update操作。

您可以在此处了解更多信息

http://api.rubyonrails.org/v5.0/classes/ActionView/Helpers/FormHelper.html

答案 1 :(得分:1)

您不需要传递*_path助手,它们在视图中随处可见。