Cal*_*lin 2 ruby-on-rails rails-routing
在我最新的网站上,我有一个定义如下的搜索表单:
= form_tag search_path(:termen), :method => :get do
= text_field_tag :termen, params[:termen]
= submit_tag "Search »"
Run Code Online (Sandbox Code Playgroud)
一条路线:
# search
get "search(/:termen)" => "articole#cauta", :as => :search
Run Code Online (Sandbox Code Playgroud)
我想当我按下搜索按钮以获得如下网址:
http://www.mysite.com/search/[the_termn_that_was_typed]
Run Code Online (Sandbox Code Playgroud)
所以例如当我在搜索"吸血鬼"时,我应该得到:
http://www.mysite.com/search/vampire
Run Code Online (Sandbox Code Playgroud)
有关这一个的线索吗?
非常感谢,
我认为RESTful这样做的方法是重新定位已发布的请求以获取您想要的构造URL的请求.
这是两条路线
resources :articles do
collection do
get :search, :action => 'search_post', :as => 'search_post'
get 'search/:q', :action => 'search', :as => 'search'
end
end
Run Code Online (Sandbox Code Playgroud)
现在在控制器中,您将发布请求重定向到获取请求
def search_post
redirect_to search_articles_path(params[:q])
end
Run Code Online (Sandbox Code Playgroud)
作为提交表单的结果,用户最终会在URL上
http://www.mysite.com/articles/search/vampire
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5254 次 |
| 最近记录: |