2013-08-14 2 views
1

안녕하세요 저는 레일을 처음 사용하고 잘 작동하는 다음 레일 폼을 가지고 있습니다. 이메일 텍스트 상자에 레일 양식 도우미 비어있는 유효성 확인

<%= form_for :user, url: users_path do |f| %> 
<p> 
<%= f.text_field :email, :placeholder=>'first name' %> 
<%= f.text_field :email, :placeholder=>'last name' %> 
<%= f.email_field :email, :placeholder=>'email address' %> 
<%= f.password_field :password, :placeholder=>'password' %> 
<%= f.password_field :password2, :placeholder=>'password2' %> 
</p> 
<%= f.submit 'Sign up!', :class=>'btn-custom btn-submit' %> 
<% end %> 

양식을 제출하고 이메일 주소의 형식이 아닌 문자열을 감지하면 필드를 강조 표시하지 않습니다 그것으로 내장 일부 클라이언트 측 유효성 검사가있다.

내장 된 양식 유효성 검사는 텍스트 필드가 비어 있는지 확인하지 않습니다. 그것을 확인하는 방법이 있습니까?

나는 jquery로 할 수 있다는 것을 알고 있으며, 다른 방법이 없다면 그렇게 할 것입니다.하지만 2 가지 형태의 검증 코드가 있다는 것은 어리석은 생각입니다.

fyi 또한 모델에도 유효성이 있습니다.

+0

"2 가지 별도의 유효성 검사 코드가있는 것 같습니다."- jQuery에서 의미가 있습니까? 문제가 무엇인지 모르겠다. 이미 전자 메일 필드의 유효성을 검사하는 JS 기능이있는 경우 다른 필드를 확인하기 위해 확장하면 상당히 간단해야한다. jQuery를 게시 할 수 있습니까? – GMA

답변

4

사용이 : 또한

<%= f.email_field :email, :required => true, :pattern => '[^@][email protected][^@]+\.[a-zA-Z]{2,6}', :placeholder=>'email address' %> 

:

당신이 한 : 나는

<%= f.text_field :first_name, :placeholder=>'first name' %> 
<%= f.text_field :last_name, :placeholder=>'last name' %> 
+0

좋은 점을 찍은 이메일은 다음과 같이 처리되었습니다 : required => true는 치료를합니다! 감사! – Jamesla

2

해야

<%= f.text_field :email, :placeholder=>'first name' %> 
<%= f.text_field :email, :placeholder=>'last name' %> 

추측 왜 당신이 모든에 :email을 가지고 있습니다 선 여기?

<%= f.text_field :email, :placeholder=>'first name' %> 
        ^^^^^^ Here 
<%= f.text_field :email, :placeholder=>'last name' %> 
        ^^^^^^^ and here 
<%= f.email_field :email, :placeholder=>'email address' %> 

들은이 :firstname:lastname 호출하지 않습니다 ? (또는 모델에서 애트리뷰트가 호출되는 항목).

어떤 종류의 유효성 검사가 확실하지 않습니다. 클라이언트 측 유효성 검사를 의미하는 경우, 즉 빈 필드가있는 경우 양식이 전혀 제출되지 않도록하려면 Javascript를 통해 양식을 제출해야합니다. Rails는 서버 측 코드이므로 양식 데이터가 이미 제출 될 때까지 아무것도 수행 할 수 없습니다. 당신은 당신이 이미했던 말을하는 ...

validates :email,  presence: true 
validates :firstname, presence: true 
validates :lastname, presence: true 

,하지만 전체 참조를 위해이 문제를 포함하고 있습니다 :

당신은 당신의 모델이 뭔가를 추가하려는 필드 서버 측 유효성을 검사하려면 앞으로이 질문을 읽는 사람들에게