Cuando miro los métodos en los modelos de Rails, a veces veo self.method_name
y algunas veces solo method_name
. ¿Cuál es la diferencia y cuál es la guía para saber cuándo usar self.
y cuándo no?Rails Model method self. vs plain
31
A
Respuesta
43
self.method_name indica un método de clase; method_name indica un método de instancia.
Puede leer mucho más sobre los métodos de clase e instancia at this blog post o, si prefiere algo un poco más oficial, el Programming Ruby class section.
24
1) Cuando se aplica a las definiciones de métodos, 'self'. lo convertirá en un método de clase, mientras que simple será un método de instancia.
2) Cuando se aplica a atributos en un modelo, es importante usar siempre el self al cambiar un atributo, pero no lo necesitará de otro modo.
así por ejemplo:
def some_method
self.name = new_value # correct
name = new_value # will not change the attribute
end
Cuestiones relacionadas
- 1. ¿Cuándo usar self en Model?
- 2. Usando [self method] o @selector (method)?
- 3. ActiveRecord Rails 3 scope vs class method
- 4. method = "post" enctype = "text/plain" no son compatibles?
- 5. Rails redirect_to post method?
- 6. create_or_update method in rails
- 7. has_many build method, Rails
- 8. Rails Model Herencia
- 9. before_create in rails model
- 10. ¿Cuándo debería usar @classmethod y when def method (self)?
- 11. Diferencia entre Spring JDBC Vs Plain JDBC?
- 12. C# mvc model vs viewbag
- 13. Haskell vs. Python threading model
- 14. Confundido con Model vs ViewModel
- 15. rails model has_many: a través de asociaciones
- 16. Rails debug method only outputs! Binary values
- 17. Rails 3 ActiveRecord API: .build method
- 18. Python: self .__ tipo class__ vs (auto)
- 19. Python: super y __init __() vs __init __ (self)
- 20. Lista activada de Rails ActiveRecord Model
- 21. Pasar parámetros adicionales a Rails Generate Model?
- 22. Static Vs Instance Method Performance C#
- 23. Spring @PostConstruct vs. init-method attribute
- 24. .NET Threading Model and Application.DoEvents vs. Thread.Sleep
- 25. ASP.net MVC View's Model vs ViewData.Model?
- 26. Django Overriding Model Clean() vs Save()
- 27. ¿Qué es JavaBeans plain-vanilla & plain-vanilla Java Class?
- 28. python variable method name
- 29. java.net.URLConnection.guessContentTypeFromStream y text/plain
- 30. (Ruby, Rails) Contexto de SELF en módulos y bibliotecas ...?
incluso mejor que la respuesta upstair. – neversion
Punto 2) me estaba volviendo loco. ¡Gracias! –