2012-06-09 25 views
7

Tôi đang làm việc thông qua Rails cho Zombies, yêu thương hướng dẫn hữu ích và quan tâm đến người khác bằng cách này ....nhiều kiểm chứng thực Rails 3 (Rails cho Zombies; 2: 3)

Vấn đề của tôi là như sau.

Các hướng dẫn yêu cầu tôi

"Do cả hai xác nhận độc đáo và hiện diện trên tên của một Zombie trên một dòng duy nhất, bằng cách sử dụng cú pháp mới"

Tôi đã thử những điều sau đây trong giao diện điều khiển tại RfZ;


class Zombie < ActiveRecord::Base 
    validates_uniqueness_of :name, validates_presence_of :name 
end 

// VÀ //

class Zombie < ActiveRecord::Base 
    validates Name :uniqueness, :presence => true 
end 

Các hướng dẫn được hỏi cho Rails mới 3 cú pháp. Tôi hiểu cú pháp mới cho phép nhiều đối số xác thực trong một dòng. Rất đẹp, nhưng tôi sẽ làm như thế nào? Cảm ơn trước tất cả mọi người.

-Ryan

Trả lời

9

nỗ lực thứ hai của bạn là gần hơn, nhưng không hoàn toàn chính xác. Hãy thử điều này:

class Zombie < ActiveRecord::Base 
    validates :name, :uniqueness => true, :presence => true 
end 

FYI, cú pháp cũ sẽ là:

class Zombie < ActiveRecord::Base 
    validates_presence_of :name 
    validateS_uniqueness_of :name 
end 
+0

Rob, bạn đá, cảm ơn. Tôi hoàn toàn đánh giá cao nó, mà làm việc tôi thấy tại sao quá. –

+0

Không có vấn đề gì! Lưu ý: thông thường bạn nên chấp nhận câu trả lời thỏa mãn câu hỏi của bạn để câu hỏi của bạn bị đóng và để mọi người tìm kiếm Stack Overflow có thể tìm câu trả lời nếu họ có câu hỏi tương tự. –

+0

OK. Hãy để tôi mất một giây để con số này ra để tôi có thể chấp nhận câu trả lời của bạn Rob, cảm ơn một lần nữa. –

5
validates :name, :presence => true, :uniqueness => true 
+1

Tại sao câu trả lời này lại bị bỏ phiếu? Đó là câu trả lời đầu tiên cho câu hỏi AFAIK –

0

Bạn cũng có thể thử điều này.

class Zombie < ActiveRecord::Base 
     validates :name, presence: true, uniqueness: true 
    end