2011-08-06 25 views
1

タイトルに書かれているとおり、リンク先のメソッドを変更することはできません。実際には、生成されたhtmlには期待されるタグdata-method="post"が含まれていますが、GET要求を送信します。link_toのメソッドを '投稿'に変更することはできません

<% @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を生成:事前に

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

ありがとう:生成されたリンクをクリックした後

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

​​

ルートを!

編集:私が:via => :getへのルートを変更すると動作しますが、それは私が必要とするものではありません。

編集:Nevermind、私はそれを修正しました。私はこのメニューを隠す/表示するためのjQueryコードを持っていました。そしてどこかにevent.stopPropagationを使用しました。これは邪魔にならないjavascriptがハイパーリンクをポストする方法を変更するのを間違って防ぎました。

答えて

1

jquery-ujsがインストールされて有効になっていますか?ハイパーリンクからのGET以外の要求はありますか?

これをインストールしていない場合、html5属性 'data-method'が正しく生成されていても、リンクをクリックすると通常のGET要求が送信されます。

+0

はい、私はjquery-rails 1.0.12 gemをインストールしています。また、私のプロジェクトには、 '<%= link_to '、' playlist、Destroy '、' Are you sure? '、メソッド::delete%>'などの非取得リクエストを送信するプロジェクト内の他のハイパーリンクがあります。 – dcastro

関連する問題