Ruby on rails :方法put:不工作,而使用Get方法
因此,我尝试使用以下路线:Ruby on rails :方法put:不工作,而使用Get方法,ruby-on-rails,ruby,get,put,Ruby On Rails,Ruby,Get,Put,因此,我尝试使用以下路线: <%= link_to like_post_path(@post), :method => :put do %> 对我来说毫无意义 myroutes.rb: resources :posts do member do put "like" => "posts#upvote" put "dislike" => "posts#downvote" end 您使用的格式正确,代码应该生成如下内
<%= link_to like_post_path(@post), :method => :put do %>
对我来说毫无意义
myroutes.rb:
resources :posts do
member do
put "like" => "posts#upvote"
put "dislike" => "posts#downvote"
end
您使用的格式正确,代码应该生成如下内容:
<a data-method="put" href="...">
从您的routes错误消息中,我们可以得出结论,它不是使用POST
和\u method=put
参数发送的。所以,问题一定是您没有包含jQuery和Rails jQuery扩展javascript文件
一个简单的修复方法是在页面中包含application.js
文件(默认情况下包括jquery和rails js扩展名)。签名:
link_to(name = nil, options = nil, html_options = nil, &block)
根据文档,:方法属于选项哈希
召唤
<%= link_to like_post_path(@post), :method => :put do %>
:put do%>
投入使用的结果
- 名称:like_post_path(@post)
- 选项:无
- html_选项:{method::put}
<%= link_to like_post_path(@post), { method: :put } do %>
这是一个很好的建议,确保设置了data method=“put”,并确保您正在应用程序中重新查询
jquery\u ujs
。就是这样!!非常感谢你。问题是我的Jquery和Rails查询,因为您确定吗?options
将是{:method=>:put}
和html\u选项是nil
?我的错误,用正确的解决方案编辑了答案。(options={method::put}是所需的。)
<%= link_to like_post_path(@post), { method: :put } do %>