rails link_to ruby-on-rails-3.1

ruby on rails 3.1 - rails - link_to con target blank



link_to rails (2)

Soy nuevo en Rails 3, me gustaría agregar (: target => "_blank") a link_to helper a continuación

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

Pero me gustaría usar el application_helper para definir el método link_to.

  1. ¿Cómo defino el link_to methd en application_helper?
  2. ¿Cómo paso la clase: "btn btn-large btn-primary" en el método link_to?

Gracias por su asistencia...


¿Por qué querrías anular link_to ? Ya está definido en Rails, solo úselo así:

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

Edición: OK, entendido. Recomiendo que no se invalide un método tan común, así que cree otro:

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

Deberia hacer el truco


Agregando a la respuesta de Anthony, esto se parece más a la implementación link_to Rails, que incluye soporte para bloques y no pasa parámetros:

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