【问题标题】:Rails link_to :method => :put send a GET requestRails link_to :method => :put 发送 GET 请求
【发布时间】:2015-12-12 08:42:20
【问题描述】:

我正在尝试使用 link_to 发送 PUT 请求,但每次我都发送 GET 请求。

我试过了:

<%= link_to raw('Valider'), roommates_join_path(:reference => var['reference']), :method => :put, :class => "btn btn-primary" %>

在我的浏览器中我得到:

<a class="btn btn-primary" data-method="put" href="/roommates/join" rel="nofollow">Valider</a>

我的路线.rb:

 put 'roommates/join'

当我点击时:

没有路线匹配 [GET] "/roommates/join"

【问题讨论】:

  • 能否请您发布您的 application.js 文件?您的浏览器中是否启用了 javascript?
  • 检查你的 gemfile,看看你是否安装了 jquery-rails。
  • @hidewak 你解决了吗?
  • @hidewak 尝试禁用 AdBlock 或其他任何可能与页面上的 js 混淆的东西。

标签: ruby-on-rails httprequest put


【解决方案1】:

我在使用link_to path, method: :put, data: {} 时遇到同样的问题,它会将AJAX 触发到GETPUT

link_to 更改为button_to 以使用实际表单而不是使用jquery_ujs 可以解决问题。不过,我并没有真正找到原因。

【讨论】:

    【解决方案2】:

    确保在布局中包含应用程序的 javascript。

    例如,如果您使用默认的“应用程序”布局,请确保在您的 &lt;head/&gt; 中包含应用程序 javascript,如下所示:

    app/views/layouts/application.html.erb

    <head> 
      ... 
      <%= javascript_include_tag "application" %>
      ...
    </head>
    

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 2016-04-18
      • 2015-10-23
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多