2011-07-04 163 views
5

我正在創建一個跟蹤用戶和成就的應用程序(想想,xbox live等)。這些表通過連接錶鏈接。我希望在索引上有一個搜索表單,用戶可以輸入用戶名稱,並在新頁面中加載用戶獲得的所有成就列表。我不完全確定如何在索引上設置此搜索表單,以實際搜索用戶表並將結果返回到新頁面。任何幫助將不勝感激。如果您需要更多信息,我會很樂意提供。Rails搜索表單

回答

5

下面是一些框架代碼,讓你開始根據你所說的需要開始。我希望這是有用的。

對於搜索位,你可以做這樣的事情在你的索引視圖:

<%= form_for User.new, :url => "search" do |f| %> 
    <%= f.label :name %> 
    <%- f.text_field :name %> 
<%- end %> 

在你的控制器:

def search 
    q = params[:user][:name] 
    @users = User.find(:all, :conditions => ["name LIKE %?%",q]) 
end 

,並在您的搜索視圖:

<%[email protected] do |user| %> 
    Name: <%=user.name %> 

    <%- user.achievements.each do |achievement| %> 
    <%= achievement.name %> 
    <%- end %> 
<%- end %> 

當然,您需要確保用戶和成就模型正確鏈接:

class User << ActiveRecord::Base 
    has_many :achievements 

end 
2

有很多教程和事物的這個如:

http://blog.devinterface.com/2010/05/how-to-model-a-custom-search-form-in-rails/

看的東西是在Rails3中開始,由他們提供的初始教程每一個基本解釋解釋你如何設置一個新的控制器/模型。這個例子只有數千個解釋同樣的問題。

這是一個非常廣泛的不同的事情,你可以做到這一點。基本上,你必須把一些代碼在控制器:

  1. 它處理搜索(包括ActiveRecord的東西,或任何技術,你用它來訪問你的模型)
  2. 其中設置一些必要的變量爲搜索表單

設置兩條路線等...它的廣泛和完全覆蓋,即使是基本的官方rails3教程。

+1

謝謝,但該教程沒有給出一個非常明確的解釋,至少對我來說,它需要你使用formtastic。感謝谷歌搜索,但如果它可以分解更容易讓我理解,再次,我會很感激。 – SalsaSalsa

+0

有沒有任何翻譯的鏈接? –

+0

@AliQanavatian你可以簡單地點擊右側的英語作爲語言 – fyr

0

這是基於searchlogic的應用是非常有用的,你可以搜索通過任何你想要的

https://github.com/railscasts/176-searchlogic