2011-08-03 21 views
9

que utiliza el siguiente código:link_to en Rails3 +

<%= link_to image_tag("edit.png", :alt => "Edit"), edit_user_path(user) %> 

Quiero desactivar este enlace y la imagen, por lo que añadió :disabled=>true al código, pero no es incapacitante. ¿Por qué no, y cómo los desactivo?

+0

Desde todas las preguntas y respuestas han sido votadas, entonces estoy pensando que este es el enfoque equivocado. ¿Puede alguien, con más experiencia, sugerir por qué se votó todo lo que se cayó? –

+0

No puedo decir por qué votaron en contra, pero probablemente porque no son * respuestas * fáciles. Disabled no deshabilita los hipervínculos - http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-87355129 Por lo tanto, necesitará un enlace condicional o JavaScript para inhabilitar –

Respuesta

6

A diferencia de los botones, los hipervínculos no se pueden "deshabilitar". Puede hacer lo siguiente, sin embargo, suponiendo que tiene jQuery incluyó en sus páginas:

<%=link_to image_tag("edit.png", :alt=>"Edit"), edit_user_path(user), :id => "mylink" %> 

Agregue el siguiente JavaScript a su página:

$('#mylink').click(function(e){ 
    e.preventDefault(); 
}); 
+0

esto para deshabilitar todos los enlaces deshabilitados - $ ('a [disabled]'), haga clic en (función (e) { e.preventDefault(); }); –

0

1) Una solución es hacer que acaba de image_tag cuando lo hace no desea vincular y usar link_to cuando desee que el enlace se habilite con un clic. puede usar variables de instancia para controlar qué renderizar.

2) o use Javascript como se sugiere.

Use 2 si desea hacerlo dinámicamente.

-1

Es posible utilizar link_to condicional:

<%= 
link_to_if(@current_user.nil?, "Login", { :controller => "sessions", :action => "new" }) do 
    link_to(@current_user.login, { :controller => "accounts", :action => "show", :id => @current_user }) 
end 
%> 
10

No estoy seguro de lo que quería @lamrin con esta pregunta, pero supongo que es algo como esto:

<%= link_to_if condition?, image_tag("edit.png", :alt => "Edit"), edit_user_path(user) %> 

Con este código arriba, la imagen tendría un enlace si la condición? Es cierto

En mi caso este código a continuación trabajó (un ejemplo más complicado):

link_to_unless disabled, (content_tag :div, "", :class => "vote " + vote_class, :title => title), resource_user_path({ :id => resuser.id, :resource_user => {:id => resuser.id, :resource_id => resource_id, :user_id => current_user_id, :vote => vote_value}}), :remote => true, :method => http_method 

Este enlace también puede ayudar con este enfoque:

http://railskey.wordpress.com/2012/07/19/rails-link_to-link_to_if-and-link_to_unless/

1

En respuesta a su pregunta , no hay: opción desactivada para el link_to helper en Rails, y tampoco es un atributo válido para un elemento. Creo que la razón por la que la gente tiende a confundirse con esto en Rails es que ": disabled => true" funciona SI estás usando Bootstrap. Entonces, para solucionar este problema, puedes seguir el enfoque de Gupta o simplemente agregar Bootstrap (que también te dará CSS predeterminado, para que la gente no se frustre al intentar hacer clic en el enlace).

Re: método link_to en rieles: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to)

Re: el atributo "desactivado" en una serie de elementos: Is 'disabled' a valid attribute for an anchor tag

Re: Bootstrap clase "desactivado" o atributo con bootstrap: http://getbootstrap.com/css/#anchor-element-1

+0

@lamrin, ¿esto respondió a tu pregunta? Está usando Ruby on Rails, y solo quiere poder agregar ": disabled => true" a este código, ¿verdad? ¡Avíseme si hay algo con lo que todavía necesita ayuda! –