2012-05-04 5 views
0

레일스 어플리케이션을위한 간단한 검색 입력 폼을 만들었지 만, 아무 것도 입력하지 않으면 모든 사용자의 결과를 반환하지만 값을 입력하지 않으면 작동하지 않겠다는 것을 알았습니다.입력 레일의 유효성 확인

내 양식

<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

메신저 레일 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 extract try the sql 컨트롤러에서 내가 방금 쓴 것. – Suborx

+0

코드에서 볼 수있는 장소가 필요하지만 제공 한 검색 방법을 기반으로 작성하는 방법 –

관련 문제