我正在使用generic search form,搜索后的网址看起来像是
http://localhost:3000/search?commit=Search&page=2&query=feature&utf8=%E2%9C%93
搜索工作正常,但我想从网址中删除默认的“utf8 =✓”和“commit = Search”参数,我也使用will_paginate
,我希望{{1在查询参数之后将其保留为:
&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 %>
感谢。
答案 0 :(得分:3)
见类似问题:
Rails 3 UTF-8 query string showing up in URL?
removing "utf8=✓" from rails 3 form submissions
基本上,要删除'commit = Search',请将:name => nil
添加到submit_tag。 IE需要utf8字符。但是,第二个链接有一个初始化方法来删除该部分。
在此视频中,Ryan Bates谈到了name: nil
修正(没有ajax):http://railscasts.com/episodes/37-simple-search-form
答案 1 :(得分:2)
Ryan Bates在你想要做的事情上做了一个漂亮的屏幕演示(再加上一些)。
http://railscasts.com/episodes/240-search-sort-paginate-with-ajax
答案 2 :(得分:1)
就你发送它而言,你不能将它从网址中删除。
清理will_paginate试试这个
<%= will_paginate @whatever, params => params.merge({:commit => nil, :utf8 => nil}) %>
答案 3 :(得分:1)
我使用
解决了utf问题<form action="<%= root_path %>" method="get" >
...
</form>
而不是form_tag,它解决了它。