Rails 4的最佳方法是什么?link_to:删除JS是否可能被禁用?

时间:2013-07-24 00:26:34

标签: ruby-on-rails-4 tor ujs

这是一个非常标准的代码(Rails 4):

<%= link_to 'Log out', logout_path, :method => :delete %>

但是,这是一个非标准的考虑因素:没有Javascript。没有Javascript,jquery_ujs没有得到它的钩子,所以链接创建了一个没有路由的普通GET /logout

为什么呢?因为我想支持该站点的Tor隐藏站点版本,并且我必须假设Tor用户(最有可能通过Tor浏览器捆绑包)将禁用JavaScript。 (我故意不想为他们启用JS,以防止各种潜在的隐私泄露。我也不想允许XSRF攻击,例如允许某人用GET注销我的用户,也不会让用户界面丑陋按钮)。

隐藏网站的功能低于主网站(例如,没有通过tor接受的付款),但登录/注销等基本内容确实应该正常工作。

支持此功能的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

也许您可以使用表单助手创建form。这将允许您指定要使用的method。 Rails将在form内生成一个隐藏字段,用于指定HTTP方法,然后Rails会使用该方法确定要调用的控制器操作。

唯一要做的就是编写一些CSS来使提交按钮看起来像一个链接,但你可以在网上轻松找到它。