使用link_to helper包装一些HTML

时间:2011-05-30 09:37:36

标签: ruby-on-rails ruby-on-rails-3

我想使用link_to包装一些HTML,但我遇到了一些问题。

<%= 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>

我也尝试过:

<%= 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>

我想要的是:

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

你能帮助我吗?谢谢你。

3 个答案:

答案 0 :(得分:2)

符合rails documentation

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

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

<% end %>

答案 1 :(得分:0)

如果您要为link_to提供一个块,则不再需要链接文本的(正常)第一个参数。

所以我猜你想要这个:

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

答案 2 :(得分:0)

尝试:

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

尽管如此,在li标记中看到a却很奇怪。通常情况就是这样。