rails links link_to link how _blank ruby-on-rails twitter-bootstrap

ruby-on-rails - link_to - links en rails



Usar link_to con HTML incrustado (12)

Estoy usando Twitter Bootstrap y tengo el siguiente HTML:

<a class="btn" href="<%= user_path(@user) %>"><i class="icon-ok icon-white"></i> Do it@</a>

¿Cuál es la mejor manera de hacer esto en Rails? Me gustaría usar <%= link_to ''Do it'', user_path(@user) %> pero el <i class="icon-ok icon-white"></i> está tirando?


Ayudante basado en la sugerencia de Titas Milan, pero usando un bloque:

def show_link(link_text, link_source) link_to link_source, { class: ''btn'' } do "#{content_tag :i, nil, class: ''icon-ok icon-white''} #{link_text}".html_safe end end


Creo que puede simplificarlo a través de un método de ayuda si lo usa con frecuencia en su aplicación.

ponerlo en helper / application_helper.rb

def show_link(link_text, link_source) link_to("#{content_tag :i, nil, class: ''icon-ok icon-white''} #{link_text}".html_safe, link_source, class: "btn") end

Luego llámalo desde tu archivo de vista al igual que link_to

<%= show_link "Do it", user_path(@user) %>


Dos caminos. Ya sea:

<%= link_to user_path(@user) do %> <i class="icon-ok icon-white"></i> Do it@ <% end %>

O:

<%= link_to ''<i class="icon-ok icon-white"></i> Do it@''.html_safe, user_path(@user) %>


En HTML normal,

<a href="register.html"><i class="fa fa-user-plus"></i> Register</a>

En Ruby On Rails:

<%= link_to routeName_path do %> <i class="fa fa-user-plus"></i> Link Name <% end %> <%= link_to register_path do %> <i class="fa fa-user-plus"></i> Register <% end %>


En la gema twitter-bootstrap-rail: crean un glifo auxiliar

def glyph(*names) content_tag :i, nil, :class => names.map{|name| "icon-#{name.to_s.gsub(''_'',''-'')}" } end

Entonces puedes usarlo como: glyph(:twitter) y tu link helper podría verse así: link_to glyph(:twitter), user_path(@user)


Le daré una oportunidad ya que aún no ha aceptado una respuesta
y las otras respuestas no son el 100% de lo que estabas buscando.
Esta es la forma de hacerlo a la manera de Rails.

<%= link_to(user_path(@user), :class => ''btn'') do %> <i class="icon-ok icon-white"> </i> Do it! <% end %>

Editar: dejando mi respuesta para referencia futura,
pero @ justin-herrick tiene la respuesta correcta cuando
trabajando con Twitter Bootstrap.


Si desea un enlace en rieles que use esa misma clase de iconos de Twitter bootstrap, todo lo que necesita hacer es algo como esto.

<%= link_to "Do it@", user_path(@user), :class => "btn icon-ok icon-white" %>


Si está utilizando el programa de arranque 3.2.0, puede usar este asistente en su app/helpers/application_helper.rb

module ApplicationHelper def glyph(*names) content_tag :i, nil, :class => names.map{|name| "glyphicon glyphicon-#{name.to_s.gsub(''_'',''-'')}" } end end

y luego, en tus puntos de vista:

link_to glyph(:pencil) + '' Edit'', edit_post_path(@post), class: ''btn btn-warning''


También tienes la posibilidad de crear un método de ayuda como el siguiente:

def link_fa_to(icon_name, text, link) link_to content_tag(:i, text, :class => "fa fa-#{icon_name}"), link end

Adapte las clases a sus necesidades.


Tuve la misma necesidad recientemente. Prueba esto:

<%= link_to ''<i class="icon-ok icon-white"></i> Do it''.html_safe, user_path(@user) %>


Usando HAML:

= link_to model_path do %img{src: ''/assets/someimg.png''}


def show_link (source, text) link_to source, {''data-original-title'' => ''Show'', ''data-toggle'' => ''tooltip'', :class => ''btn btn-xs btn-success''} do "#{text} #{content_tag :i, nil, class:'' glyphicon glyphicon-eye-open'' }".html_safe end end