タイトルに書かれているとおり、リンク先のメソッドを変更することはできません。実際には、生成された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がハイパーリンクをポストする方法を変更するのを間違って防ぎました。
はい、私はjquery-rails 1.0.12 gemをインストールしています。また、私のプロジェクトには、 '<%= link_to '、' playlist、Destroy '、' Are you sure? '、メソッド::delete%>'などの非取得リクエストを送信するプロジェクト内の他のハイパーリンクがあります。 – dcastro