2012-02-26 30 views
31

Khi xem các phương thức trong các mô hình Rails, đôi khi tôi thấy self.method_name và đôi khi chỉ là một method_name. Sự khác biệt và hướng dẫn để biết khi nào sử dụng self. và khi nào thì không?Rails Phương thức mô hình tự. vs plain

Trả lời

43

self.method_name biểu thị phương thức lớp; method_name chỉ ra một phương thức instance.

Bạn có thể đọc nhiều hơn về các phương pháp lớp và ví dụ at this blog post hoặc, nếu bạn muốn chính thức hơn một chút, Programming Ruby class section.

24

1) Khi áp dụng cho định nghĩa phương thức, 'tự'. sẽ làm cho nó trở thành một phương thức lớp, trong khi đồng bằng sẽ là một phương thức thể hiện.

2) Khi áp dụng cho các thuộc tính trong một mô hình, điều quan trọng là luôn sử dụng tự khi thay đổi thuộc tính, nhưng bạn sẽ không cần nó nếu không.

để ví dụ:

def some_method 
self.name = new_value # correct 
name = new_value # will not change the attribute 
end 
+1

thậm chí tốt hơn so với câu trả lời lầu. – neversion

+0

Điểm 2) đã khiến tôi phát điên. Cảm ơn! –

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