Trong suốt đơn đăng ký của tôi self.
không cần thiết để tham chiếu đến tên của người dùng. name
hoạt động tốt.Tại sao lại sử dụng "tự" để truy cập các thuộc tính mô hình ActiveRecord/Rails?
Tại sao mã sau yêu cầu self
hoạt động như dự định?
class User< ActiveRecord::Base
before_save :validate_name
def validate_name
if self.name.nil? || self.name.empty?
self.name= "Mr. No Name"
end
end
Bằng cách này, tôi biết rằng validates_presence_of
thể được sử dụng để ngăn chặn sự tiết kiệm, nhưng tôi muốn lưu với một mặc định nếu không có tên được đưa ra.
Rails 3.0.7.
Xin lỗi, 'self.day' được cho là' self.name'! Tôi đã cập nhật câu hỏi. –
Nit: Ruby sẽ không bao giờ dùng 'x = y' để gọi phương thức. Nó luôn luôn là một biến trực tiếp (hoặc hằng số, tùy thuộc vào trường hợp) gán. Biểu mẫu 'x' (như biểu thức) phụ thuộc vào nếu có một' x' trong phạm vi (như một biến) hay không. –
Nếu 'name' và' name = 'được thêm động sau khi tệp lớp được phân tích cú pháp, thì có khi nào' name' có nghĩa là 'self.name' và các lần khác khi' name' là một biến cục bộ? –