📅  最后修改于: 2023-12-03 15:34:36.771000             🧑  作者: Mango
在Rails中,我们可以使用link_to方法轻松地创建链接。但是,我们有时也需要删除这些链接。
我们可以通过CSS将链接隐藏起来,以达到删除的效果。具体来说,可以将链接的display属性设置为none。例如:
<a href="#" class="delete-link">Delete</a>
.delete-link {
display: none;
}
这样,这个链接就会被隐藏起来,用户也就看不到了。
Rails的link_to方法有一个if参数,它可以根据某个条件来判断链接是否应该被生成。例如:
<%= link_to "Delete", post_path(@post), method: :delete, data: { confirm: "Are you sure?" }, if: current_user.admin? %>
上面的代码中,只有当用户是管理员时才显示“Delete”链接。而对于普通用户,这个链接就不会被生成。
最后,我们也可以完全手动地生成链接。这需要我们写一些HTML和JavaScript代码,来模拟link_to方法的功能。
例如,我们可以使用以下代码来生成一个删除链接:
<a href="#" onclick="event.preventDefault(); if (confirm('Are you sure?')) { document.getElementById('delete-form').submit(); }">
Delete
</a>
<form id="delete-form" action="<%= post_path(@post) %>" method="post">
<input type="hidden" name="_method" value="delete" />
<input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>" />
</form>
这个代码片段中,我们手动生成了一个链接,当用户点击时会触发JavaScript代码。该代码首先取消默认的链接跳转行为,然后根据用户的选择来决定是否提交删除表单。删除表单中包含了需要的数据,例如HTTP方法和安全令牌。
以上是三种在Rails中删除链接的方法。无论你选择哪种,都需要考虑到安全和易用性问题。删除链接虽然看似简单,但在功能和设计上都有着许多细节需要考虑。