2012-02-29 42 views
0

我有一個軌道的link_to方法字母表中的每個字母(但早期 天,就會把它在一個循環後)。我有一個控制檯相同的 另一頁面和一個工作正常,但我的網頁上的一個用於 信件沒有。的link_to字母搜索

我在我的模型如下:

def index 
user_relation = case params[:username].present? 
    when true then User.where(:username => params[:username]) 
    else User 
    end 

    @users = user_relation.paginate :page=>params[:page], :order => 'created_at desc', :per_page => 10 
end 

,這是我的索引的例子:

<%= link_to 'A', users_path(:username => 'A'), {:style=>'color:#FFFFFF', :class => "tabel-3"}%> 

現在,如果我點擊一個並不儘管有是返回任何結果 許多用戶以字母A,但如果我是例如放在 括號中的名字AdrianShaw(在我的數據庫中的一個用戶),然後單擊 一個它會返回準確的用戶。什麼似乎做的是搜索 但僅限於精確匹配的結果,任何小於完整的單詞和 它不會返回。

我怎麼會去這樣做,這樣它得到所有用戶與第一 字母A等?

回答

1

您需要與運營商一樣搜索:

when true then User.where("username LIKE ?", "#{params[:username]}%") 

LIKE運營商,並與%您搜索與用戶名開始params[:username]記錄。

+0

那麼明顯! Cheeres Matteo爲我指出了這一點。謝謝。 – user1222136 2012-02-29 21:59:24

+0

不客氣! :) – 2012-02-29 21:59:48