1

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

我想做一些相对简单的事情。

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

我有以下代码循环通过一组网站

<%= 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>
4

1 回答 1

1

我正在遍历@sites 的集合,调用Site.all 返回的结果,因此提供给上述表单的对象是@sites 中包含的|site| 之一

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

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

于 2013-06-26T14:47:52.553 回答