Passando argomenti opzionali attraverso un metodo involucro in Rails
-
19-09-2019 - |
Domanda
Ho il seguente metodo wrapper per 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
Quando viene chiamato con questo esempio:
link_to_with_current 'My Link', '/mylink.html', true, :id => 'mylink'
Il seguente link viene generato:
<a href="/mylink" class="current">My Link</a>
Perché non l'ID presentarsi?
Soluzione
Grazie al suggerimento di theIV, ho trovato una versione che funziona:
def link_to_with_current(text, link, condition, *args)
options = args.first || {}
options[:class] = condition ? 'current' : nil
link_to text, link, options
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow