2012-05-04 10 views
0

Railsアプリケーション用の簡単な検索入力フォームを作成しましたが、何も入力しないとすべてのユーザーの結果が返されますが、値が入力されていないと機能しないようにしました入力レールの妥当性確認

マイフォーム

<h6>Search for Friends</h6> 
    <form action ="users/search" method="post"> 
    <input name = "key" type="input" /> 
    <input value="Search" type="submit"/> 
    </form> 

コントローラメソッド

def search 
    @users = User.find(:all,:order => 'username', :conditions => ["username LIKE ?", "%#{params[:key]}%"]) 
end 
+0

あなたが使用しているレールのバージョン? – Suborx

+0

私はRails 3_2を使用して –

答えて

1

は新しいARELの書き込みをしてみたり、キーが割り当てられたかどうかを確認します。

def search 
    @users = User.where(["username LIKE ?", "%#{params[:key]}%"]).order('username') 
end 

または

def search 
    if params[:key].blank? 
    @users = [] 
    else 
    @users = User.where(["username LIKE ?", "%#{params[:key]}%"]).order('username') 
    end 
end 
+0

私は欲しいものは、文字が入力されていない場合、結果を返さないSQL文です今すぐ私のSQL文は、値が存在せず、submiitボタンが押されたときにすべての値を返します –

+0

OK私がちょうど書いたものからコントローラから。 – Suborx

+0

あなたのコードから私はそれを見る場所が必要ですが、あなたが提供した検索方法に基づいてそれを書いてください。 –