:method put: 不工作而是 Get 方法
:method put: not working instead Get method
所以我正在尝试使用以下路线:
<%= link_to like_post_path(@post), :method => :put do %>
但我不知道为什么使用 GET
方法而不是 PUT
No route matches [GET] "/posts/1/like"
对我来说毫无意义..
myroutes.rb:
resources :posts do
member do
put "like" => "posts#upvote"
put "dislike" => "posts#downvote"
end
您使用的格式正确,您的代码应该生成如下内容:
<a data-method="put" href="...">
从您的路由错误消息中我们可以得出结论,它不是使用 POST
和 _method=put
参数发送的。所以,问题一定是你没有包含 jQuery 和 Rails jQuery 扩展名 javascript 文件。
一个简单的解决方法是在您的页面中包含 application.js
文件(默认包含 jquery 和 rails js 扩展名)。
link_to 签名:
link_to(name = nil, options = nil, html_options = nil, &block)
根据文档,:method 属于选项散列。
打电话
<%= link_to like_post_path(@post), :method => :put do %>
结果放入
- 姓名:like_post_path(@post),
- 选项:无,
- html_options: { 方法: :put }
来自Hash
散列也常被用作在函数中命名参数的一种方式。请注意,下面没有使用括号。如果散列是方法调用的最后一个参数,则不需要大括号,从而创建一个真正干净的接口:
编辑
<%= link_to like_post_path(@post), { method: :put } do %>
引导您实现目标。
所以我正在尝试使用以下路线:
<%= link_to like_post_path(@post), :method => :put do %>
但我不知道为什么使用 GET
方法而不是 PUT
No route matches [GET] "/posts/1/like"
对我来说毫无意义..
myroutes.rb:
resources :posts do
member do
put "like" => "posts#upvote"
put "dislike" => "posts#downvote"
end
您使用的格式正确,您的代码应该生成如下内容:
<a data-method="put" href="...">
从您的路由错误消息中我们可以得出结论,它不是使用 POST
和 _method=put
参数发送的。所以,问题一定是你没有包含 jQuery 和 Rails jQuery 扩展名 javascript 文件。
一个简单的解决方法是在您的页面中包含 application.js
文件(默认包含 jquery 和 rails js 扩展名)。
link_to 签名:
link_to(name = nil, options = nil, html_options = nil, &block)
根据文档,:method 属于选项散列。
打电话
<%= link_to like_post_path(@post), :method => :put do %>
结果放入
- 姓名:like_post_path(@post),
- 选项:无,
- html_options: { 方法: :put }
来自Hash
散列也常被用作在函数中命名参数的一种方式。请注意,下面没有使用括号。如果散列是方法调用的最后一个参数,则不需要大括号,从而创建一个真正干净的接口:
编辑
<%= link_to like_post_path(@post), { method: :put } do %>
引导您实现目标。