2012-12-09 22 views
40

Tôi có một Mô hình người dùng trong ứng dụng Rails có một trường email. Có xác thực mặc định để đảm bảo email có định dạng chính xác không? Nếu không, làm thế nào tôi sẽ đi về xác nhận trường đó?Làm cách nào để xác thực định dạng của trường email trong ActiveRecord?

+0

bởi ' địa chỉ email hợp lệ' có nghĩa là email thực sự tồn tại hay nó phù hợp với định dạng email? – nurettin

+12

Thật kỳ lạ khi điều này đã bị đóng. Nó có thể không quá đặc biệt, nhưng tôi thấy một câu hỏi thực sự ở đây. – sscirrus

+0

@sscirrus Vâng, để được hoàn toàn đan-picky, ông đã không thực sự đặt một câu hỏi. Ngoài ra, nó không phải là hành vi tốt để chỉ yêu cầu các bản phát hành mã trên SO. Một câu hỏi thích hợp hơn sẽ là "làm thế nào người ta có thể viết mã mà [kết quả mong muốn]?" – anthropomorphic

Trả lời

96

Thêm vào gemfile của bạn:

gem 'validates_email_format_of' 

và trong mô hình của bạn:

validates :email, email_format: { message: "doesn't look like an email address" } 

Hoặc nếu bạn không muốn sử dụng một viên ngọc, sử dụng regex:

validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i 
+1

Câu trả lời hay, cảm ơn –

+1

Regex bạn cung cấp dường như không hoạt động:/ – Paladini

+1

Chỉ sử dụng:' with:/@/'https: //davidcel.is/posts/stop-validating-email-addresses-with-regex/ –

Các vấn đề liên quan