2010-02-08 2 views
1

У меня есть следующий метод обертка для link_to:Переходя необязательные аргументы через метод обертки в Rails

def link_to_with_current(text, link, condition, *args) 
    current_class = condition ? 'current' : nil 
    link_to text, link, :class => current_class, *args 
end 

При вызове с помощью этого образца:

link_to_with_current 'My Link', '/mylink.html', true, :id => 'mylink' 

Следующая ссылка генерируется:

<a href="/mylink" class="current">My Link</a> 

Почему нет идентификатора?

+1

Я не думаю, что вы хотите использовать в восклицательный знак для этих аргументов, я думаю, вы будете лучше использовать хэш (например как 'options = {}'). Посмотрите на источник для 'link_to' http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#M001597 – theIV

ответ

1

Благодаря предложению theIV, я нашел версию, которая работает:

def link_to_with_current(text, link, condition, *args) 
    options = args.first || {} 
    options[:class] = condition ? 'current' : nil 
    link_to text, link, options 
end 
Смежные вопросы