Tengo una aplicación de rieles que carga muchos datos de algunos servicios de Java. Estoy escribiendo un módulo que me permitirá llenar algunos cuadros de selección con estos datos y estoy tratando de incluirlos adecuadamente para poder hacer referencia a ellos en mis vistas. Aquí está mi móduloruby module as collection of methods
module FilterOptions
module Select
def some_select
return "some information"
end
end
end
Mi idea era incluir FilterOptions en mi application_helper, y pensé entonces podría hacer referencia a mis métodos usando Select::some_select
Este no es el caso. Tengo que include FilterOptions::Select
luego puedo hacer referencia al método some_select
por sí mismo. No quiero eso, aunque creo que es un poco confuso para alguien que puede no saber que some_select
viene de mi propio módulo.
Así que, ¿Cómo escribo métodos de un módulo que son como los métodos estáticos públicos para que pueda incluir a mi módulo principal, y la referencia de mis métodos que utilizan el espacio de nombres de sub-módulo como Select::some_select
bien, me siento un poco estúpido, hago esto en clases todo el tiempo consigo mismo, no sé por qué pensé que un módulo sería diferente. Por cierto, ¿cuál es la diferencia entre usar Select :: some_select y Select.some_select? – brad
Esa es una buena pregunta. Cuando se trata de constantes, necesitas usar la notación :: porque no es una llamada a método, pero creo que puedes usar cualquiera de los dos métodos. – tadman