【问题标题】:How to pass a url path to a form_with partial in Rails?如何在 Rails 中将 url 路径传递给 form_with partial?
【发布时间】:2018-06-30 21:48:19
【问题描述】:

我正在尝试渲染表单并将 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

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

Rails 非常神奇,如果您使用现有的实例变量 (@ride),则不必显式传入 URL。试试

&lt;%= render "rides/form" %&gt; 在您的 home/index.html.erb 文件中

并在您的“rides/_form.html.erb”中使用:

&lt;%= form_for @ride do |f| %&gt;...

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

你可以在这里阅读更多关于它的信息

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

【讨论】:

  • 谢谢。还有一个问题,我有一个错误:“表单中的第一个参数不能包含 nil 或为空”。我在 form_for 中将 @ride 更改为 Ride.new
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2014-10-05
    • 2022-08-09
    相关资源
    最近更新 更多