我正试图实现本教程所示的acts\u as\u votable gem
https://www.youtube.com/watch?v=7-1HCWbu7iU
似乎一切正常,除了单击upvote或downvote时,出现以下错误:
No route matches [GET] "/links/1/like"
这是支持/反对票功能的代码
<span class="upvote">
<%= link_to like_link_path(link), method: :put, class: "upvote-image" do %>
<% end %>
</span>
这就是路线。rb文件:
resources :links do
member do
put "like", to: "links#upvote"
put "dislike", to: "links#downvote"
end
resources :comments
end
以下是links\u controller中的upvote和downvote操作
def upvote
@link = Link.find(params[:id])
@link.upvote_by current_user
redirect_to :back
end
def downvote
@link = Link.find(params[:id])
@link.downvote_by current_user
redirect_to :back
end
有没有办法解决这个问题?
试试这个
<span class="upvote">
<%= link_to like_path, method: :put, class: "upvote-image" do %>
<% end %>
</span>
我找到了一个答案,我把它贴在这里,以防有其他人有同样的问题。
我正在Windows上开发。我在javascript方面遇到了问题,并遵循以下解决方案:https://stackoverflow.com/a/31972253/1690091
这消除了到处出现的javascript相关错误,但这不是解决方案。这只是从我的应用程序中删除了js。
真正的解决方案在这里:https://stackoverflow.com/a/28331807/1690091
您需要使用与Windows兼容的正确版本的coffee脚本。
总结一下:
我的应用程序中缺少js文件,因此也缺少了/=require jquery\u ujs
,这就是为什么我的所有链接都被称为GET。
@Rich Peck,谢谢你的帮助。
看起来问题在于您的链接具有GET
方法,而不是PUT
:
没有路由匹配[GET]“/links/1/like”
我只能推测您的链接到
代码的书写不正确:
<span class="upvote">
<%= link_to like_link_path(link), method: :put, class: "upvote-image" %>
</span>
您的其他代码看起来不错。如果您对此进行测试,最好的做法是在问题中显示链接的纯HTML,这将使我们能够查看它是否正确呈现。
我是刚来香港的,所以请容忍我:)我在windows服务器上作为主机托管我的APIhttp://supermarket.xxxx.com:5000 在Ubuntu盒上添加了如下服务(http://supermarket.xxxx.com已添加到主机文件中) HTTP/1.1 201创建日期: Thu,17 Dec2020 07:11:50GMT Content-Type: Application/j
Tango支持4种形式的路由匹配规则 静态路由 tg.Get("/", new(Action)) tg.Get("/static", new(Action))匹配 URL:/ 到 Action结构体的Get函数 匹配 URL:/static 到 Action结构体的Get函数 命名路由 tg.Get("/:name", new(Action)) tg.Get("/(:name)", new(Act
注意:本部分是为v1 API编写的,但这些概念也适用于v2 API。它将在未来版本的v2 API中重新描述。 Envoy的路由匹配过程如下: HTTP请求的头域字段 host 或 :authority 与虚拟主机匹配。 按顺序检查虚拟主机中的每个路由表。如果匹配,则使用该路由并且不再匹配路由。 独立地,依次检查虚拟主机中的每个虚拟集群。如果匹配,则使用虚拟群集,不再进一步匹配集群。 返回 上一级
上一篇文章我们说到路由的正则编译,正则编译的目的就是和请求的 url 来匹配,只有匹配上的路由才是我们真正想要的,此外也会通过正则匹配来获取路由的参数。 路由的匹配 路由进行正则编译后,就要与请求 request 来进行正则匹配,并且进行一些验证,例如 UriValidator、MethodValidator、SchemeValidator、HostValidator。 class RouteCo
即时消息使用rails 5 我有一个叫普莱斯的模型。(有许多产品) Prices有一个名为Product的模型(属于price) 在这种情况下,我可以创建新产品,也可以销毁产品。 我的路线 在我的价格秀里 在我的产品编辑中 在我的产品控制器中 我的耙路线 问题是 当我点击提交按钮时,我发现了这个错误 谢谢你帮我
我有两个感兴趣的文件:build。靴子 和src/clj/vidiot/server。clj 然后我,, 然后在我的浏览器中转到localhost:9090,终端打印。 我可以通过降级来解决这个问题:构建中的依赖项。引导至。 所以,我的问题是,为什么我不能在构建uberjar时使用(本文中的最新版本)?