ruby-on-rails-4.1ruby-2.1

Rails: Disabling link_to link not working but hidden link_to working


The link_to method is as which is not disabled:-

<%= link_to edit_cabinet_path(object), remote: true, disabled: true do %>
      <span class="glyphicon glyphicon-pencil"></span>
<% end %>  

but if i do like below which hides the link

<%= link_to edit_cabinet_path(object), remote: true, style: "display:none;" do %>
      <span class="glyphicon glyphicon-pencil"></span>
<% end %>  

Now the question is how to disable this type of link with block, and whats the reason that second code is working and first is not.


Solution

  • Probably, you are looking for link_to_if. link_to_if makes your link clickable only if your condition pass.

    Your code should be something like:

    <%= link_to_if false, edit_cabinet_path(object), remote: true do %>
          <span class="glyphicon glyphicon-pencil"></span>
    <% end %> 
    

    To make it dynamic you can call condition that satisfy whether to active or inactive that link, something like:

    <%= link_to_if cabinate.active?, 
                   "<span class='glyphicon glyphicon-pencil'></span>".html_safe, 
                   edit_cabinet_path(object), remote: true %>
    

    Hope this answer your question..