Le passage d'arguments optionnels par un procédé d'emballage dans Rails
-
19-09-2019 - |
Question
J'ai la méthode d'emballage suivante pour link_to
:
def link_to_with_current(text, link, condition, *args)
current_class = condition ? 'current' : nil
link_to text, link, :class => current_class, *args
end
Lorsqu'il est appelé avec cet exemple:
link_to_with_current 'My Link', '/mylink.html', true, :id => 'mylink'
Le lien suivant est généré:
<a href="/mylink" class="current">My Link</a>
Pourquoi ne pas l'ID apparaissent?
La solution
Merci à la suggestion de theIV, j'ai trouvé une version qui fonctionne:
def link_to_with_current(text, link, condition, *args)
options = args.first || {}
options[:class] = condition ? 'current' : nil
link_to text, link, options
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow