Osservando i metodi nei modelli Rails, a volte vedo self.method_name
e talvolta solo uno method_name
. Qual è la differenza e qual è la guida per sapere quando usare self.
e quando no?Rails Modello metodo self. vs plain
31
A
risposta
43
self.method_name indica un metodo di classe; method_name indica un metodo di istanza.
È possibile leggere molto di più sui metodi di classe e di istanza at this blog post o, se preferisci qualcosa di un po 'più ufficiale, lo Programming Ruby class section.
24
1) Quando applicato a definizioni di metodo, "self". lo renderà un metodo di classe, mentre plain sarà un metodo di istanza.
2) Quando applicato a attributi in un modello, è importante utilizzare sempre il sé quando si modifica un attributo, ma non ne sarà necessario altrimenti.
così per esempio:
def some_method
self.name = new_value # correct
name = new_value # will not change the attribute
end
Problemi correlati
- 1. OM Components vs plain functions
- 2. Plain old Ruby posizione in Rails
- 3. Rails Devise - Admin ruolo, modello vs attributo
- 4. Rails HABTM self join error
- 5. boost scoped_lock vs plain lock/unlock
- 6. Differenza tra Spring JDBC Vs Plain JDBC?
- 7. Rails: metodo di chiamata all'interno del modello
- 8. Utilizzo del metodo self-class
- 9. IObservable vs Plain Event o Perché dovrei usare IObservable?
- 10. Rails: metodo di istanza del modello o metodo di supporto?
- 11. Classi ruby: inizializza self vs. @variable
- 12. obiettivo C underscore property vs self
- 13. cosa significa "class << self" in Rails?
- 14. Python: super e __init __() vs __init __ (self)
- 15. Python: self .__ class__ vs. tipo (auto)
- 16. Rails: belongs_to vs has_one
- 17. viewmodel .prototype .function vs self .function in viewmodel?
- 18. Rails .where vs .find
- 19. Metodo tuple richiede esplicita `self` argomento
- 20. Module.exports vs plain json per i file di configurazione
- 21. UINavigationBar BarButtonItem con Plain Style
- 22. Perché utilizzare "self" per accedere alle proprietà del modello ActiveRecord/Rails?
- 23. Rails 3 vs Sinatra
- 24. Chiamare i metodi di classe tramite nome classe vs self
- 25. Django Modello() vs Model.objects.create()
- 26. Campo modello Django predefinito dal metodo modello
- 27. Metodo di salvataggio del modello dello stub in Rspec/Rails
- 28. Come alias un metodo di classe nel modello di rails?
- 29. Rails 4: metodo non definito `relation_delegate_class 'per Modello: Classe
- 30. Rails 3 Visualizza il metodo di supporto nel modello
anche meglio di risposta al piano superiore. – neversion
Punto 2) mi stava facendo impazzire. Grazie! –