Подтвердить что ты не робот

Link_to с целевым пробелом

Я новичок в rails 3, я хотел бы добавить (: target = > "_blank" ) к link_to helper ниже

link_to "GOOGLE", 'http://www.google.com', class: "btn btn-large btn-primary"

Но я хотел бы использовать application_helper для определения метода link_to.

  • Как определить link_to metd в application_helper?
  • Как передать класс: "btn btn-large btn-primary" в методе link_to?

Благодарим вас за помощь...

4b9b3361

Ответ 1

Почему вы хотите переопределить link_to? Он уже определен в Rails, просто используйте его следующим образом:

link_to "GOOGLE", "http://www.google.com", target: "_blank", class: "btn btn-large btn-primary"

Изменить: хорошо, понятно. Я бы посоветовал исключить такой общий метод, чтобы создать еще один:

def link_to_blank(body, url_options = {}, html_options = {})
  link_to(body, url_options, html_options.merge(target: "_blank"))
end

Он должен сделать трюк

Ответ 2

Добавляя к ответу Anthony, это более похоже на реализацию Rails link_to, включая поддержку блоков и передачу каких-либо параметров:

def link_to_blank(name = nil, options = nil, html_options = nil, &block)
  target_blank = {target: "_blank"}
  if block_given?
    options ||= {}
    options = options.merge(target_blank)
  else
    html_options ||= {}
    html_options = html_options.merge(target_blank)
  end
  link_to(name, options, html_options, &block)
end