这让我疯狂,因为它似乎没有任何意义。
我想做一些比较简单的事。
在索引页面的模板中显示编辑表单。
我有以下代码循环遍历一组网站
<%= 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>
答案 0 :(得分:1)
我正在遍历@sites的集合,通过调用Site.all返回的结果 因此,提供给上述表单的对象是@sites
中包含的| site |之一如果您使用从数据库检索的对象或者像Site.new这样的“新记录”对象提供form_for表单,它将自动区分和修改创建和更新操作之间的路由等。
form_for无法识别@sites块中包含的站点对象。因此,通过ajax请求编辑的快速重要因素,以及通过编辑操作(@site = Site.find(params [:id])创建的实例变量提供的表单是form_for帮助程序可识别的,并且意味着提交行动,相应调整到正确的路线。