【问题标题】:Use link_to helper wrap some HTML使用 link_to helper 包装一些 HTML
【发布时间】:2011-05-30 09:37:36
【问题描述】:

我想用link_来包装一些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>

你能帮我吗?谢谢。

【问题讨论】:

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


【解决方案1】:

根据rails documentation

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

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

<% end %>

【讨论】:

    【解决方案2】:

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

    所以我猜你想要这个:

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

    【讨论】:

    • 谢谢。但是User#index中有一些语法错误。
    【解决方案3】:

    试试:

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

    虽然,在a 标记中看到li 很奇怪。通常情况正好相反。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      相关资源
      最近更新 更多