J'ai une méthode song_link
qui appelle link_to
en interne. Je souhaite que l'appelant puisse passer un hachage d'options à song_link
, qui utilisera ensuite les options appropriées et passera le reste à link_to
. Voici mon code:Passer sélectivement des options à une autre méthode
def song_link(song, separator = nil, options = {})
if separator.class == Hash
options = separator
separator = nil # not sure about this logic either!
# I guess I should roll it into the options hash
end
primary_only = false
if options[:primary_only]
options.delete(:primary_only)
primary_only = true
end
link_to title_with_artists(song, separator, primary_only), song_path(:song_slug => song.song_slug, :artist_slug => song.artist_slug), options
end
Ie, je veux vérifier si options[:primary_only]
existe, et si elle ne l'utilise à des fins de song_link
sans passer le long de link_to
Il est évident que cette approche ne échelle que j'ajoute plus d'options qui sont pertinentes pour song_link
mais pas pour link_to
. Comment dois-je faire cela?
Donc, fondamentalement, faites ce que je fais? –
C'est soit cela ou passer deux hachages d'options différentes. –