我有一个典型的CRUD应用程序,我想在f.submit旁边添加一个链接,允许您返回索引而不保存更改。我认为它只是简单地建立索引链接,但无论如何它都在保存更改。
<%= button_to 'Close Without Saving', users_path %>
<%= f.submit %>
处理此问题的轨道方式是什么?
答案 0 :(得分:1)
来自fine manual:
[
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
并设置链接样式以匹配您的提交按钮(或者将其设置为类似于链接的样式根据您的喜好)。
答案 1 :(得分:0)
<button type="button" onClick="location.href='<%= users_path %>'">Close Without Saving</button>
<%= f.submit %>
这也很有用......回到基础并使用了很好的老式HTML。