Reputation: 49
I am trying to replace the tag with link_to in my rails application view. for replacing I have svg icon, text and link all in one tag. Here is below
<a class="navbar-brand" href="index.html"><%= image_tag 'logo.svg', "data-svg-fallback" => image_path('logo.svg'), :align=> "left" ,:style => "padding-right: 5px;" %>
My Project </a>
but I failed to convert the above link to rails link_to
Any suggestion would be great This is what I am trying but it is not working
1. <%= link_to '#' do %>
My Project<%= image_tag ('logo.svg', "data-svg-fallback" => image_path('logo.svg'), :align=> "left" ,:style => "padding-right: 5px;") %>
<% end %>
2. <%= link_to "My Project", home_index_path, :class=> "navbar-brand" do %>
<%= image_tag('logo.svg'), "data-svg-fallback" => image_path('logo.svg'), :align=> "left" ,:style => "padding-right: 5px"; %>
<% end %>
Upvotes: 2
Views: 3362
Reputation: 452
Remove the space after image_tag.
<%= link_to '#' do %>
My Project <%= image_tag('logo.svg', "data-svg-fallback" => image_path('logo.svg'), :align=> "left" ,:style => "padding-right: 5px;") %>
<% end %>
Upvotes: 2
Reputation: 3946
Instead of image_path
you have to use asseth_path
.
Try this:
<%= link_to '#' do %>
My Project <%= image_tag('logo.svg', "data-svg-fallback" => asset_path('logo.svg'), :align=> "left" ,:style => "padding-right: 5px;") %>
<% end %>
Upvotes: 0
Reputation: 2457
You need to use asset_path
do set the path of your svg inside the data attribute like so
<%= link_to "index.html", class: "navbar-brand" do %>
<%= image_tag "logo.svg", data: { svg_fallback => asset_path("logo.svg") }, align: "left", style: "padding-right: 5px;" %> My Project
<% end %>
Upvotes: 0