¿Dónde debería poner un método en Rails que usarán todos mis modelos?Rieles donde poner un método para usar en todos los modelos
Respuesta
Querrá investigar sobre una convención de Rails llamada "Preocupaciones". Aquí está la verdad: crear un subdirectorio llamado inquietudes en el directorio de tu aplicación. Cree su módulo en aplicaciones/inquietudes e incluya el módulo en todos sus modelos. Agregue la ruta a la aplicación/inquietudes a su config.autoload_path en config/application.rb.
Antes de hacer nada de eso, tengo curiosidad por saber qué tipo de método debería incluirse en TODOS los modelos. ¿De cuántos modelos estamos hablando y qué problema estás tratando de resolver?
Es para datos a un servidor remoto, es decir, un servidor socket.io. Estoy usando socket.io para actualizaciones en tiempo real y necesito enviar esas actualizaciones desde varios modelos. – JRPete
No creo que la preocupación sea la forma correcta –
De acuerdo, Aroop. Creo que la solución debe estar en un nivel superior. Aunque no estoy lo suficientemente familiarizado con socket.io. –
Hay varias formas en las que podría no alcanzar este
- uso y programación orientada a objetos y crear una subclase de ActiveRecord :: Base en su proyecto y utilizar esa clase como un padre para todos sus modelos
- mono ruta ActiveRecord :: Base
- Crear un módulo y que incluye en todos sus modelos
puede escribir métodos reutilizables en un módulo de e incluir en los modelos necesarios.
crear un archivo en lib/reusable.rb
module Reusable
def reusable_method_1
puts "reusable"
end
def reusable_method_2
puts "reusable"
end
end
digamos que si usted desea utilizar este modelo de usuario en
class User < ActiveRecord::Base
include Reusable
end
Y también asegurarse de que el autoload_path habilitado lib/directorio application.rb
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)
Vi muchas respuestas a esta pregunta y ninguna mencionó incluir lib en autoload_paths. +1 por eso! resuelto mi problema –
Extensiones de registro activas durante el inicio del servidor
# config/initializers/core_extensions.rb
class ActiveRecord::Base
# write ur common base code here
def self.per_page
@@per_page ||= 10
end
def self.pagination(options)
paginate :per_page => options[:per_page] || per_page, :page => options[:page]
end
end
- 1. donde poner métodos auxiliares solo para controladores?
- 2. obtener una lista de todos los modelos de rieles
- 3. SQLAlchemy "event.listen" para todos los modelos
- 4. ¿Los modelos de rieles deberían preocuparse por otros modelos en aras de los controladores delgados?
- 5. métodos globales en el rubí en los modelos de rieles
- 6. Rails 3 cargando todos los modelos en el arranque
- 7. Django Queryset en todos los modelos?
- 8. Rieles: ¿Cómo funcionan los modelos autorreferenciales has_many?
- 9. ¿Los modelos de vista se usan en los rieles?
- 10. rieles Cargando impaciente en todos los hallazgos
- 11. Dónde poner los métodos reutilizables para el acceso de los controladores en los rieles
- 12. Campo de downcase masivo para todos los registros en rieles
- 13. ¿Cómo puedo iterar a través de todos los Modelos en mi aplicación de rieles?
- 14. donde debe "incluir" poner en C++
- 15. donde debo poner en removeObserver AppDelegate.m, ios
- 16. Creación automática de fórmulas para todos los posibles modelos lineales
- 17. Cómo agregar cláusulas condicionales donde en los rieles
- 18. ¿Cómo puedo poner los datos a los rieles usando jQuery
- 19. Callbacks globales de ActiveRecord para todos los modelos
- 20. rieles "find_all_by" vs ".donde"
- 21. will_paginate con múltiples modelos (rieles)
- 22. Poner todos los métodos en la definición de clase
- 23. cómo anotar modelos de rieles en rieles versión 3.2.1
- 24. Rieles Acciones silenciosas Índice Poner
- 25. Donde poner el binario en CMake?
- 26. ¿Cómo puedo configurar Xcode para poner '{' donde lo quiero en los archivos generados
- 27. Método genérico para encontrar todos los controles TextBox en Silverlight
- 28. Cómo generar documentos para mis modelos y controlador en rieles
- 29. Búsqueda de rieles en varios modelos
- 30. ¿Cómo usar múltiples cachés en los rieles?
¿Duplicado? http://stackoverflow.com/questions/2328984/rails-extending-activerecordbase –