在Rails模型中查看方法時,有時會看到self.method_name
,有時候只看到method_name
。有什麼區別和什麼是指導知道什麼時候使用self.
以及什麼時候不使用?Rails模型方法self。 vs plain
31
A
回答
43
self.method_name指示類方法; method_name指示一個實例方法。
你可以閱讀更多關於類和實例方法at this blog post或者如果你更喜歡一些更官方的東西,Programming Ruby class section。
24
1)當應用於方法定義時,'self'。將使其成爲一種類方法,而plain將成爲一種實例方法。
2)當應用於模型中的屬性時,在更改屬性時始終使用self很重要,否則不需要它。
因此,例如:
def some_method
self.name = new_value # correct
name = new_value # will not change the attribute
end
相關問題
- 1. Django中的「self」模型方法
- 2. text/plain vs text/javascript
- 3. Benchmarking Rails模型方法
- 4. Plain Servlet vs Spring MVC
- 5. 揭示類模式vs原型方法?
- 6. rspec2拋出「未定義的方法」的模型類的方法(.self)
- 7. assigns()方法vs綁定 - Rails
- 8. 方法vs屬性Rails
- 9. Rails模型關聯和銷燬方法
- 10. Rails模型:受保護的方法?
- 11. Rails的模型方法失敗
- 12. rails:在模型中收起長方法
- 13. Rails:向ActiveRecord模型添加方法
- 14. Rails的模型方法rspec的試驗
- 15. Rails自定義模型方法
- 16. 訪問Rails類/模型方法
- 17. Rails:模型中的方法鏈接
- 18. rails其他模型方法中的current_model
- 19. Rails中的模型的輔助方法
- 20. Meta_Search Rails - 搜索我的模型方法
- 21. Rails模型:包含自己的方法
- 22. 在rails中的模型更新方法
- 23. Rails使用自定義模型方法
- 24. Rails模型的常見方法訂單
- 25. 覆蓋保存方法vs模型方法?
- 26. Django:模型中的方法vs視圖中的方法
- 27. 爲什麼使用「self」訪問ActiveRecord/Rails模型屬性?
- 28. rails:在模型之間的關聯中使用「self」
- 29. Rails模型測試 - 嘲弄vs.工廠
- 30. 對象方法vs原型方法
甚至比樓上的回答更好。 – neversion 2016-10-10 01:41:30
點2)讓我瘋狂。謝謝! – 2016-11-15 10:15:34