1

現在、次のリンクがあります。

<%= link_to 'New campus', new_campus_path(:university_id => @university.id) %>

私が取得するURLは次のとおりです。

/campus/new?university_id=1

パラメータを POST として渡すにはどうすればよいですか?

method => :post を追加しようとしましたが、運がありません。助けていただければ幸いです。ありがとう。

4

2 に答える 2

3

methodパラメータはlink_to機能するはずです-正確には何が問題でしたか?

<%= link_to 'New campus', new_campus_path(:university_id => @university.id), method: :post %>

または、試すことができますbutton_to

<%= button_to 'New campus', new_campus_path(:university_id => @university.id), method: :post %>

編集:どちらの場合も、パラメーターはクエリ文字列に追加されますが、HTTP動詞が正しい限り、両方へのアクセスはparamsハッシュを介して行われるため、これによってRailsに違いが生じることはありません。

パラメータを含めないことが非常に重要な場合は、自分でフォームを作成し、非表示フィールドを追加できます。

<%= form_tag new_campus_path, method: :post %>
  <%= hidden_field_tag :university_id, @university.id %>
  <%= submit_tag 'New campus' %>
<% end %>

Railsにはこれに対する近道はないと思います


編集2:余談ですが、私が正しく推測している場合、このリンクは、デフォルトの大学が選択された新しいキャンパスを作成するためのフォームを開くことになっています。その場合は、実際にはGETを使用する必要があります。これは、副作用を引き起こさない単なる読み取りアクションだからです。

于 2012-07-27T13:25:48.973 に答える
0

JQueryを使用できます。このような :

$("#my_link").click(function() {
  $.ajax({
    type: 'POST',
    url: '/campus/new?university_id=1'
  });
});

ここでドキュメントを見ることができます: http: //api.jquery.com/click/およびここ:http://api.jquery.com/jQuery.post/

于 2012-07-27T13:19:55.170 に答える