【问题标题】:Remove default 'GET' method parameters from URL从 URL 中删除默认的“GET”方法参数
【发布时间】:2011-04-25 19:38:52
【问题描述】:

我使用的是generic search form,搜索后我的网址是这样的

http://localhost:3000/search?commit=Search&page=2&query=feature&utf8=%E2%9C%93

搜索工作正常,但我想从 URL 中删除默认的“utf8=✓”和“commit=Search”参数,我也在使用 will_paginate,我希望 &page=2 是在查询参数之后离开它是这样的:

http://localhost:3000/search?query=feature&page=2

我的代码:

#posts_controller.rb
def search 
    query = '%'+params[:query]+'%'        
    @posts = Post.find(:all, :conditions => ["content LIKE ? or title LIKE ?", query, query]).paginate(:page => params[:page], :per_page => 5)
end

#html form
<%= form_tag(search_path, :method => 'get') do %>
    <%= text_field_tag "query" %>
    <%= submit_tag "Search" %>
<% end %>

#routes.rb
match '/search', :to => 'posts#search'

谢谢。

【问题讨论】:

标签: html ruby-on-rails ruby-on-rails-3


【解决方案1】:

查看类似问题:

Rails 3 UTF-8 query string showing up in URL?

removing "utf8=✓" from rails 3 form submissions

基本上,要删除“commit=Search”,请将 :name =&gt; nil 添加到 submit_tag。 IE 需要 utf8 字符。但是,第二个链接有一个初始化方法来删除该部分。

在此视频中,Ryan Bates 谈到了 name: nil 修复(无 ajax):http://railscasts.com/episodes/37-simple-search-form

【讨论】:

    【解决方案2】:

    就您发送它而言,您不能只是将其从 url 中删除。

    要清理 will_paginate 试试这个

    <%= will_paginate @whatever, params => params.merge({:commit => nil, :utf8 => nil}) %>
    

    【讨论】:

    • 谢谢,这确实有助于分页链接,但它仍然不完美,我无法决定参数的顺序。
    • 至于params 是一个哈希 - 所以你不能对它进行排序或排序(在 Ruby 1.9+ 中你可以)。哈希是一个未排序的列表
    【解决方案3】:

    我通过使用解决了 utf 问题

    <form action="<%= root_path %>" method="get" >
    ...
    </form> 
    

    而不是form_tag,它解决了它。

    【讨论】:

      【解决方案4】:

      Ryan Bates 对您正在尝试做的事情进行了精彩的投屏(还有更多内容)。

      http://railscasts.com/episodes/240-search-sort-paginate-with-ajax

      【讨论】:

      • 谢谢,我能够删除“commit=Search”,但 utf8=✓ 仍然存在,我不想为此使用 AJAX。 utf8 参数来自一个由表单创建的隐藏 div:&lt;div style="margin:0;padding:0;display:inline"&gt;&lt;input name="utf8" type="hidden" value="&amp;#x2713;" /&gt;&lt;/div&gt; 有什么想法吗?
      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多