2012-03-16 118 views
2

ok我正在嘗試使用嵌入式ruby調用DELETE HTTP命令。RoR不工作的路由

所以我的代碼是:

<li><%= link_to "Sign out", signout_path, method: "delete" %></li> 

在我的路線我

#Note the use of via: :delete for the signout route, which indicated that it should be invoked using an HTTP DELETE request 
    match '/signout', to: 'sessions#destroy', via: :delete 

,但我得到這個錯誤!

No route matches [GET] "/signout" 

我寫「的方法:‘刪除’!那麼爲什麼它給我一個GET錯誤

傢伙將你告訴我,其中的application.js打破我的js代碼! ?這裏是我的頭代碼:

</head> 

     <!-- Ruby Code --> 
     <%= stylesheet_link_tag "scaffold" %> 
     <%= stylesheet_link_tag "myCSS/home.css", :media => "all" %> 
     <%= stylesheet_link_tag "myCSS/JS_dropdown_menu.css", :media => "all" %> 
     <%= javascript_include_tag "myJS/jquery-1.7.js" %> 
     <%= javascript_include_tag "myJS/hoverIntent.js" %> 
     <%= javascript_include_tag "myJS/jquery.dropdown.js" %> 
     <%= javascript_include_tag "application.js" %> 

     <%= csrf_meta_tags %> 

    </head> 

回答

1

您正在嘗試做一個GET請求,只會回覆刪除路由

爲什麼不是這個工作,你可能還沒有包含在產品?

<%= javascript_include_tag :application %> 

這包括jquery.jsjquery_ujs.js文件會爲您提供鏈接method: "delete"功能:使用此uded application.js

+0

'方法:'delete''應該發送一個DELETE請求。 – Emily 2012-03-16 17:56:46

+0

我編輯我的問題,仍然有問題 – 2012-03-16 18:03:39

+0

包括jquery-1.7版本可能與application.js通常包含的版本衝突。請在application.js中顯示代碼。 – 2012-03-16 20:17:25

1

通過method: 'delete'的功能依賴於有一個功能UJS庫。我會做的第一件事是確保jqueryjquery_ujs JavaScript文件被正確包含。

+0

我編輯了我的問題,仍然有問題 – 2012-03-16 18:04:16

+0

您需要jquery_ujs,而不是application.js – thiagofm 2012-03-16 19:06:18