1

我目前有以下链接:

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

我得到的网址是:

/campus/new?university_id=1

如何将参数作为 POST 传递?

我尝试添加方法=>: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 动词是正确的,这对 rails 应该没有影响,因为对两者的访问都是通过params哈希完成的。

如果不包含参数真的很重要,您可以自己创建表单并添加隐藏字段:

<%= 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 回答