2011-08-06 48 views
1

正如標題中所寫,我無法將link_to的方法更改爲:發佈。實際上,生成的html包含預期標記data-method="post",但它發送GET請求。無法將方法更改爲鏈接中的'發佈'到

<% @playlists.each do |pl| %> 
    <%= link_to new_entry_path(:music_id => @music.id, :playlist_id => pl.id), :method => :post do %> 
     <span><%= pl.name %></span> 
    <% end %> 
<% end %> 

這將生成以下HTML:

​​

路線:

match 'playlist/:playlist_id/new_entry/:music_id' => 'entries#create', :as => :new_entry, :via => :post 

點擊生成鏈接後:

No route matches [GET] "/playlist/1/new_entry/3" 

提前感謝!

編輯:它工作如果我改變路線:via => :get雖然,但那不是我需要的。

編輯:沒關係,我修好了。我有一個jQuery代碼來隱藏/顯示此菜單,並在其中的某個地方使用了event.stopPropagation,它意外地阻止了不引人注意的javascript將超鏈接方法更改爲發佈。

回答

1

您確定您已安裝並啓用了jquery-ujs,這會使超鏈接發出非GET請求嗎?

如果您還沒有安裝它,即使html5屬性'data-method'已正確生成,單擊該鏈接將發送一個正常的GET請求。

+0

是的,我敢肯定,我已經安裝了jquery-rails 1.0.12 gem。另外,我在我的項目中還有其他的超鏈接發送非獲取請求,比如'<%= link_to'Destroy',播放列表,確認:'你確定嗎?',方法:: delete%>' – dcastro