2015-09-26 73 views
2

我試圖實現acts_as_votable寶石如本本教程
https://www.youtube.com/watch?v=7-1HCWbu7iU沒有路由匹配[GET]「/鏈接/ 1 /像」與acts_as_votable

似乎一切都workigng很好,除了當我點擊在給予好評或downvote,我得到這個錯誤:

No route matches [GET] "/links/1/like" 

這是給予好評/ downvote函數的代碼

<span class="upvote"> 
      <%= link_to like_link_path(link), method: :put, class: "upvote-image" do %> 
      <% end %> 
</span> 

氏s是的routes.rb文件:

resources :links do 
    member do 
     put "like", to: "links#upvote" 
     put "dislike", to: "links#downvote" 
    end 

    resources :comments 
    end 

這裏是給予好評,並在links_controller 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 

關於如何解決這個任何想法?

回答

0

我找到了這個答案,我在這裏發佈它,以防其他人有同樣的問題。

我在Windows上開發。我有問題的JavaScript,並遵循這個解決方案在這裏: https://stackoverflow.com/a/31972253/1690091

這刪除了所有地方彈出的JavaScript相關的錯誤,但這不是解決方案。這只是從我的應用程序中刪除js。

真正的解決辦法是在這裏: https://stackoverflow.com/a/28331807/1690091

您需要使用咖啡腳本的適當版本,這是與Windows兼容。

總結的事情了:

js文件是從我的應用程序丟失,因此//= require jquery_ujs也不見了,這就是爲什麼我所有的環節都被稱爲GET。

@Rich Peck, 感謝您的幫助。

0

貌似問題是下具有GET方法你的鏈接,而不是PUT

No route matches [GET] "/links/1/like"

我只能猜測你的link_to代碼編寫不正確:

<span class="upvote"> 
    <%= link_to like_link_path(link), method: :put, class: "upvote-image" %> 
</span> 

你的其他代碼看起來不錯。如果你測試這個,最好的辦法是在你的問題中顯示鏈接的純HTML - 這將使我們能夠看到它是否被正確渲染。

-1

試試這個

<span class="upvote"> 
    <%= link_to like_path, method: :put, class: "upvote-image" do %> 
    <% end %> 
</span> 
+0

這是'link_to'方法的不正確使用。我們不應該寬恕這一點。 –

相關問題