我正在尝试呈现表单并将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
答案 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
助手,它们在视图中随处可见。