【问题标题】:List Item Wrapping Link_to in Conjunction with Can列表项包装 Link_to 与 Can 结合
【发布时间】:2012-12-11 19:30:43
【问题描述】:

我正在尝试做一些非常基本的事情,但我被绊倒了。

我正在使用 link_to 创建锚标签,但我希望将这些标签包装在 li 标签中。 我按照上一篇文章Rails 3: Link_to list item? 中的步骤进行操作,但这会将我的 LI 包装在 As 中。这个我试过了。

<%= link_to "<li>Site Specific Articles</li>".html_safe, site_specific_articles_path if can? :edit, SiteSpecificArticle %>

但它会产生

<a href="/site_specific_articles"><li>Site Specific Articles</li></a>

当我想要时

<li><a href="/site_specific_articles">Site Specific Articles</a></li>

任何想法都非常受欢迎。

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.2 link-to


    【解决方案1】:

    您必须将&lt;li&gt;&lt;/li&gt; 保留在link_to 之外,这意味着条件必须包装所有内容(它也需要从link_to 中取出)

    <% if can? :edit, SiteSpecificArticle %>
      <li>
        <%= link_to "Site Specific Articles", site_specific_articles_path %>
      </li>
    <% end %>
    

    IMO,无论如何,这更具可读性。

    【讨论】:

    • 非常感谢。我知道这很简单:-)。有多个can? :edit 条件时保持整洁的任何提示?例如网站、活动等?还是我只需要在这个上咬紧牙关?再次感谢
    • 如果像上面这样的单个条件有多个条件并且经常被重用,您可能会考虑将其放入辅助方法中,但是您正在做的事情通常只会在一个中发生很多地方:导航部分。如果是这样的话,我说只是“咬紧牙关”。我可以对此提供更详细的回复,但这有点超出了这个问题的范围。
    • 是的,不用担心。这是绰绰有余的帮助。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多