【问题标题】:edit form submitting to the wrong url and remote: true failing to be picked-up编辑表单提交到错误的 url 和 remote: true 未能被拾取
【发布时间】:2013-06-25 07:42:49
【问题描述】:

这让我发疯了,因为它似乎没有任何意义。

我想做一些比较简单的事情。

在索引页面上以模式显示编辑表单。

我有以下代码在一组网站中循环

<%= render(@sites) %>
<%= will_paginate @sites %>

在部分网站中,我隐藏了以下表单

<%= simple_form_for site, remote: true do |f| %>
  <%= f.input :name %>
  <%= f.input :matter  %>
  <%= f.submit "Save", :class => "button gr thirt", id: "site_save" %>
<% end %>

我没有生成预期的 HTML,而是得到了以下链接到 show 动作的内容,我是否在这里遗漏了一些基本的东西?

<form accept-charset="UTF-8" action="/sites/1" class="simple_form edit_site" data-remote="true"  method="post" novalidate="novalidate">
</form>

【问题讨论】:

  • 发布此操作的控制器方法。

标签: ruby-on-rails ruby-on-rails-3 forms simple-form


【解决方案1】:

我正在循环访问@sites 的集合,这是通过调用 Site.all 返回的结果 所以提供给上述表单的对象是@sites 中包含的|site| 之一

如果您使用从数据库中检索到的对象或“新记录”对象(如 Site.new)提供 form_for 表单,它将自动区分并相应地修改创建和更新操作之间的路由等。

@sites 块中包含的站点对象无法被 form_for 识别。因此,通过 ajax 请求编辑并为表单提供由编辑操作创建的实例变量 (@site = Site.find(params[:id]) ) 的快速重构因素可以被 form_for 助手识别,这意味着提交动作,相应地调整到正确的路线。

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多