2011-09-08 8 views
0

다음 문제에 도움이 필요합니다. 데이터베이스 필드에서 일치하는 문자열을 검사하는 단추를 사용하여 텍스트 필드를 내보기에 구현하고 싶습니다.레일을 사용하여 데이터베이스에 일치하는 항목이 있는지 확인하십시오. 3

특히 메일 필드가있는 계정 테이블이 있습니다. 모든 계정의 텍스트 필드에있는 사용자 입력을 비교하고 일치하는 이메일이있는 경우 true을 반환하고 이메일이 일치하지 않으면 false을 반환하고 싶습니다.

빠른 방법이 있습니까? 나는 레일에 아주 새로운 해요, 그리고 지금까지, 내가 가진 모든 뷰의 다음 코드입니다 : 모델이나 컨트롤러에 무엇을 넣어

= text_field_tag :search 
    = submit_tag "Check Email", :class => "submit" 

임 정확하게 확실하지 않은,하지만 난 다음을 작성했습니다 코드에 넣고 accounts.rb 모델에 넣었습니다.

어떤 도움을 주시면 대단히 감사하겠습니다.

답변

0

수동으로 모두 수행하는 대신 Account.find_by_email을 사용하고 빈 결과를 반환 하시겠습니까? 방법.

그렇습니다. 이것이 유효성 검사 과정의 일부라면, 그것에 관해 할 수있는 여러 가지 방법이 있습니다. 레일스 튜토리얼에는 시작하기에 충분한 정보가있을 것이고, 그 길을 벗어날 수있을 것입니다 자신의 코드를 작성하는 것보다는 기본값을 사용하는 것이 좋습니다 (validates_uniqueness_of, 몇 가지주의 사항 포함).

0

모델과의 커뮤니케이션은 컨트롤러 동작을 통해서만 가능합니다.

컨트롤러 작업에 액세스하는 유일한 방법은 리소스에 대한 HTTP 요청을 사용하는 것입니다.

그래서 :

  1. 은 이메일 (이 이미 수행 한)
  2. 가에 대한 경로를 제공 검증
  3. 이 모델에 방법을 제공하는 이메일을 확인하기 위해 컨트롤러에서 작업을 제공합니다 제어기의 조치에 액세스하십시오.
  4. 제출자 필드를 컨트롤러 조치 경로로 연결하십시오.

컨트롤러에 뭔가 묻는다면, 여기에 html 응답을 렌더링해야합니다.

이메일을 사용할 수 있는지 사용자에게 알리고 싶을 것입니다. 이렇게하려면 AJAX 요청을해야합니다. 동일한 단계가 적용됩니다.

관련 문제