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
31
A
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
Các vấn đề liên quan
- 1. Các phương pháp mô hình Rails Benchmarking
- 2. Phương thức mô hình Django - create_or_update
- 3. Vim autocomplete Rails mô hình phương pháp
- 4. Phương thức lớp vs hằng số trong Ruby/Rails
- 5. Formtastic lồng lĩnh vực hình thức mô hình (Rails 3)
- 6. verbose_name cho phương thức của mô hình
- 7. boost scoped_lock vs plain lock/mở khóa
- 8. phương pháp toàn cầu trong Ruby on Rails mô hình
- 9. Gọi một phương thức trong mô hình sau khi tìm thấy trong Ruby on Rails
- 10. Cách lấy url_for một đối tượng trong Phương thức mô hình trong Rails
- 11. Mặc định trường mô hình Django từ phương thức kiểu
- 12. Phương thức fetch() ghi đè trong mô hình xương sống
- 13. Các mô hình tự tham chiếu trong Rails 3
- 14. thêm yêu cầu vào phương thức mô hình django?
- 15. gọi phương thức trong mô hình từ chế độ xem
- 16. cách phương thức tìm nạp mô hình backbone.js hoạt động
- 17. Tín hiệu Django qua Decorator trên Phương thức Mô hình?
- 18. Rails thuộc nhiều mô hình
- 19. Rails Domain mô hình tách Activerecord
- 20. Cách chia sẻ mã trên các mô hình? (Rails 2.3)
- 21. Phương thức validates_associated tốt hơn cho Rails 3?
- 22. Không xác định phương pháp lỗi khi tôi thêm phương pháp mô hình hóa trong Rails
- 23. Serialize ActiveRecord của Rails: phương thức attr cung cấp "Thiếu lớp hoặc lỗi mô-đun"
- 24. Rails new vs create
- 25. Ghi đè phương thức mô-đun từ đá quý trong Rails
- 26. Nhiều counter_cache trong mô hình Rails
- 27. Rails Tìm kiếm trên nhiều mô hình
- 28. Rails 100% newb issue - phương thức send()
- 29. Rails + rspec + devise = phương thức undefined `authenticate_user! '
- 30. Ruby on Rails link_to Với phương thức
thậm chí tốt hơn so với câu trả lời lầu. – neversion
Điểm 2) đã khiến tôi phát điên. Cảm ơn! –