我有一个方法song_link
,它在内部调用link_to
。我希望调用者能够将选项散列传递给song_link
,然后将使用与其相关的选项,并将其余部分传递给link_to
。这里是我的代码:选择性地将选项传递给另一个方法
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
也就是说,我要检查一下options[:primary_only]
是否存在,如果它不将其用于song_link
的目的,而无需将其传递到link_to
显然,这种做法不会因为我添加了更多与song_link
相关的选项,但不包含link_to
。我应该怎么做?
那么基本上做我在做什么? – 2009-10-30 02:38:10
这是要么通过两个不同的选项哈希。 – 2009-10-30 03:44:59