2012-12-07 121 views
0

我在下面的表單中顯示了一個表單,並希望將此表單中的任何用戶輸入內容添加到url中。即如果他們搜索「你好」,他們將被重定向到派對/你好重定向到指定表單提交的頁面

<h1>Search for a Party</h1><br> 
    <%= form_tag({:action => "search"}, {:method => "get"}) do %> 
     <%= label_tag :q, "Enter Playlist Code:" %> 
     <%= text_field_tag(:q) %> 
     <%= submit_tag("Find Playlist", :name => "submit") %> 
    <% end %> 

這樣做的最好方法是什麼?

+0

http://guides.rubyonrails.org/security.html#redirection –

回答

0

邏輯會進入PartyController。

像這樣的東西在(語法可能是一個小關):

PartyController.rb

def search 
    result = params[:q] 
    redirect_to '/parties/' + result 
end 
+0

好吧,這是有道理的 - 我遇到的唯一問題是,當我點擊提交按鈕,它擊中我的「顯示」方法,而不是我的「搜索」方法 – bsiddiqui

0

yeenow123給你一個正確的方式,我只是想澄清一些要點。

「方/你好」將混淆方/路由:ID(show行爲) 如果你不想使用show動作,你應該從你route.rb除本:各方資源,也可以使用顯示行動作爲函數,它有參數[:id]是你的搜索關鍵,並繼續在這個工作。

+0

如果我希望它首先命中搜索方法(它重定向的地方),然後點擊show方法(它從數據庫呈現信息),有沒有一種方法來指定? – bsiddiqui

+0

我認爲你可以覆蓋顯示路由: - 從route.rb刪除顯示路由 - 將搜索操作替換爲當事人/:query =>:搜索 - 使用render,redirect_to或直接調用show方法,取決於你和你的邏輯。 –

相關問題