Rails: How to add link_to with target blank

后端 未结 2 866
情话喂你
情话喂你 2021-02-11 12:07

I am new to rails 3, I would like to add (:target => \"_blank\") to link_to helper below

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


        
相关标签:
2条回答
  • 2021-02-11 12:29

    Adding to Anthony's answer, this more closely resembles Rails' link_to implementation, including support for blocks and passing no parameters:

    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
    
    0 讨论(0)
  • 2021-02-11 12:45

    Why would you want to override link_to? It's already defined in Rails, just use it like this :

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

    Edit: OK, understood. I'd advise against overriding such a common method so create another one :

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

    It should do the trick

    0 讨论(0)
提交回复
热议问题