Xhinking
Xhinking

Reputation: 1069

Use link_to helper wrap some HTML

I want to use link_to wrap some HTML,but I meet some problem.

<%= link_to 'index', { :controller => "user" , :action => "resume" }, :class => is_active?("index") do %>
  <li class="usidebar-index">index</li>
<% end %> 

<a href="index" controller="user" action="resume">
  <li class="usidebar-index">index</li>
</a>

I also have tried:

<%= link_to 'index',{ :controller => "user", :action => "resume" },  :class => is_active?("index") do %>
  <li class="usidebar-index">index</li>
<% end %>

<a href="index" action="resume" controller="user">
  <li class="usidebar-index">indx</li>
</a>

What I want is:

<a href="index" class="some-style">
  <li class="usidebar-index">index</li>
</a>

Could you help me?Thank you.

Upvotes: 1

Views: 2541

Answers (3)

Jits
Jits

Reputation: 9728

Try:

<%= link_to content_tag(:li, :class => "usidebar-index"),{ :controller => "user", :action => "resume" },  :class => is_active?("index") do %>

Although, it's quite odd to see an li within an a tag. Usually it's the other way around.

Upvotes: 0

Austin Lin
Austin Lin

Reputation: 2564

per the rails documentation:

<%= link_to({:controller => "user" , :action => "resume" }, :class => is_active?("index")) do %>

  <li class="usidebar-index">index</li>

<% end %>

Upvotes: 2

pat
pat

Reputation: 16226

If you're supplying a block to link_to, the (normal) first argument of the link text is no longer required.

So I'm guessing you want this instead:

<%= link_to {:controller => 'user', :action => 'resume'}, :class => is_active?('index') do %>
  <li class="usidebar-index">index</li>
<% end %>

Upvotes: 0

Related Questions