Rails:Link_to helper with:controller,:action,:class和嵌入式html标记

时间:2013-01-17 20:07:47

标签: ruby-on-rails

您好我正在尝试创建一个非常复杂的链接,我需要它也看起来像<a><li>Link text</li></a>。现在我有这个:

<% ["Philosophy", "Team", "Local Vendors"].each do |link_name| %>
    <% if params[:action] == link_name.downcase.sub(" ", "_") %>
    <%= link_to {:controller => :philosophy, :action => link_name.downcase.sub(" ", "_").to_sym}, {:class => "selected"} do %>
        <li><%= link_name %></li>
    <% end %>
    <% else %>
    <%= link_to :controller => :philosophy, :action => link_name.downcase.sub(" ", "_").to_sym do %>
        <li><%= link_name %></li>
    <% end %>
    <% end %>

但是它没有产生看起来像<a href="philosophy/philosophy" class="selected"><li>Philosophy</li></a>的链接,而是给了我

<a href="/philosophy/philosophy?class=selected">
   <li>Philosophy</li>
</a>

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我认为这可以解决您的问题:

<%= link_to({:controller => :philosophy, :action => link_name.downcase.sub(" ", "_").to_sym}, {:class => "selected"}) do %>

我很惊讶你在没有周围括号的情况下没有在该行出错。