我有一个典型的CRUD应用程序,我想在f.submit旁边添加一个链接,使您可以在不保存更改的情况下返回索引。我原以为这会像创建索引链接一样简单,但无论如何,它都在保存更改。
<%= button_to 'Close Without Saving', users_path %>
<%= f.submit %>
铁路处理这件事的方法是什么?
来自精细手册:
[
button_to
]生成一个表单,该表单包含一个提交到由选项集创建的URL的按钮。
因此,在表单中使用button_to
将尝试创建嵌套表单,但HTML表单不会嵌套。结果将是一个类似于这样的HTML结构:
<form>
<form><!-- from button_to -->
<input type="submit">
</form>
<input type="submit"><!-- from f.submit -->
</form>
但浏览器会忽略内部的<form>
,并假设您的意思是:
<form>
<input type="submit"><!-- from button_to -->
<input type="submit"><!-- from f.submit -->
</form>
然后按下任一<input type="submit">
将提交外部表格。
您可以在外部表单中创建另一个提交按钮,控制器可以检查按下了哪个按钮,也可以使用link_to
将链接设置为与您的提交按钮相匹配的样式(或者根据您的偏好将其设置为链接样式(。
<button type="button" onClick="location.href='<%= users_path %>'">Close Without Saving</button>
<%= f.submit %>
这也起到了作用。。。回到了基础,并使用了良好的老式HTML。