J'ai une application rails qui charge beaucoup de données de certains services Java. Je suis en train d'écrire un module qui me permettra de remplir certaines cases avec ces données et j'essaie de les inclure correctement afin que je puisse les référencer dans mes vues. Voici mon moduleRuby module comme collection de méthodes
module FilterOptions
module Select
def some_select
return "some information"
end
end
end
Mon idée était d'inclure FilterOptions dans mon application_helper, et je pensais que je pourrais alors faire référence à mes méthodes en utilisant Select::some_select
Ce n'est pas le cas. Je dois include FilterOptions::Select
alors je peux faire référence à la méthode some_select
par elle-même. Je ne veux pas que ce soit parce que je pense que c'est un peu déroutant pour quelqu'un qui ne sait pas que some_select
vient de mon propre module.
Alors, comment puis-je écrire des méthodes d'un module qui sont comme des méthodes statiques publiques, donc je peux comprendre mon module principal, et la référence à mes méthodes en utilisant l'espace de noms sous-module comme Select::some_select
ok je me sens un peu stupide, je le fais dans les classes tout le temps avec soi-même, je ne sais pas pourquoi je pensais un module serait différent. BTW quelle est la différence entre l'utilisation de Select :: some_select et Select.some_select? – brad
C'est une bonne question. Quand il s'agit de constantes, vous devez utiliser la notation :: car ce n'est pas un appel de méthode, mais je pense que vous pouvez utiliser soit pour les méthodes. – tadman