【问题标题】:How to send link_to parameters using POST on Rails 2如何使用 POST on Rails 2 发送 link_to 参数
【发布时间】:2011-10-07 16:54:34
【问题描述】:

我有一个这样的链接:

<%= link_to "Nuevo Contrato", {:controller => "hotels", :action => "edit", :id => @hotel_id, :selected_tab => "4"}, :class => "new_link" %>

有一种方法可以发送那些不使用查询字符串的参数吗? (使用 post 而不是 get)??

谢谢!

我已经试过了:

<%= link_to "Nuevo Contrato", {:controller => "hotels", :action => "edit", :id => @hotel_id, :selected_tab => "4"}, {:method => :post,:class => "new_link"}  %>

而且它一直在做同样的事情......!

【问题讨论】:

    标签: ruby-on-rails post link-to


    【解决方案1】:

    在方法选项中添加支持的 HTTP 动词。

    &lt;%= link_to "link", {:method =&gt; :post ...} %&gt;

    【讨论】:

    • 只需将“method=post”添加到我的查询字符串 =S
    • place :method => :post 在块外。例如:link_to “链接”、@instance、:method => :post。那应该可以。
    • 您的 link_to 语句很好。我看到的唯一问题是您的 :action => "edit" 响应 HTTP PUT 而不是 POST。确保您的控制器操作可以接受 POST,或者如果这是您最初想要的,请将其更改为 PUT。
    • 改变一个rails restful action并不是最好的方法。由于动作是编辑的,PUT 还不够吗?此外,如果浏览器不支持 PUT,则 PUT 会即时转换为 POST。
    【解决方案2】:

    我认为您可以将:method =&gt; :post 添加到link_to 的选项中。

    这是文档(适用于 Rails 3,但我认为这仍然适用于 Rails 2)http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

    编辑更新问题

    :method =&gt; :post 属于 HTML 选项,而不是 URL 选项。这在文档中不是很明显。

    <%= link_to "Nuevo Contrato", {:controller => "hotels", :action => "edit", :id => @hotel_id, :selected_tab => "4"}, {:method => :post, :class => "new_link"}  %>
    

    【讨论】:

    • 也不起作用 =S ...实际上它正在设置正确的表单方法...但它仍然构建包含参数的链接的href ...也许我需要指定参数其他方式?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2012-09-03
    相关资源
    最近更新 更多