Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 与搜索表单相关的Rails路由_Ruby On Rails_Rails Routing - Fatal编程技术网

Ruby on rails 与搜索表单相关的Rails路由

Ruby on rails 与搜索表单相关的Rails路由,ruby-on-rails,rails-routing,Ruby On Rails,Rails Routing,在我最新的网站上,我有一个定义如下的搜索表单: = form_tag search_path(:termen), :method => :get do = text_field_tag :termen, params[:termen] = submit_tag "Search »" 路线: # search get "search(/:termen)" => "articole#cauta", :as => :search 当我按下搜索按钮时,我希望看到一个url,

在我最新的网站上,我有一个定义如下的搜索表单:

= form_tag search_path(:termen), :method => :get do
  = text_field_tag :termen, params[:termen]
  = submit_tag "Search »"
路线:

# search
get "search(/:termen)" => "articole#cauta", :as => :search
当我按下搜索按钮时,我希望看到一个url,如:

http://www.mysite.com/search/[the_termn_that_was_typed]
例如,当我搜索“吸血鬼”时,我应该得到:

http://www.mysite.com/search/vampire
关于这件事有什么线索吗


非常感谢,

我认为在直接使用表单时,您无法回避这个问题,因为这正是提交参数的方式。不过,您可以使用一点javascript来实现这一点。我会提供一个我觉得有点笨拙的解决方案,你可以决定它是否值得

首先是js(使用jQuery):

然后,您的视图代码只需要添加适当的类:


希望这能有所帮助。

我认为RESTful实现这一点的方法是重定向已发布的请求,以获得具有您希望的构造url的请求

这里有两条路线

resources :articles do
  collection do 
    get :search, :action => 'search_post', :as => 'search_post'
    get 'search/:q', :action => 'search', :as => 'search'
  end
end
现在在控制器中,您将post请求重定向到get请求

def search_post
  redirect_to search_articles_path(params[:q])
end
作为提交表单的结果,用户最终会出现在url上

http://www.mysite.com/articles/search/vampire

这不管用吗?你得到了什么?直接转到url是可行的,但按search get是我的,我确实认为我需要对搜索字符串进行一些编码thow,Thank如果我需要使用两个参数,我如何使用这个?
def search_post
  redirect_to search_articles_path(params[:q])
end
http://www.mysite.com/articles/search/vampire