【问题标题】:How to add a CSS class to a partial rendered in Rails如何将 CSS 类添加到在 Rails 中呈现的部分
【发布时间】:2017-03-24 20:31:32
【问题描述】:

我有多个要渲染的部分,并希望向其中一个添加 CSS 类。有没有办法做到这一点?

这是我正在渲染的页面

<%= render :partial => "/account/plan_yearly" -%>

将这个 html 添加到页面中

<div class="offer">
    <!--MORE HTML-->
</div>

我想做的是这样的:

<%= render :partial => "/account/plan_yearly", :class => "highlight" -%>

这将呈现下面的 html:

<div class="offer highlight">
    <!--MORE HTML-->
</div>

但它并没有按照我想要的方式工作。有什么想法吗?非常感谢!

谢谢大家

【问题讨论】:

    标签: css ruby-on-rails ruby render partials


    【解决方案1】:

    您需要使用局部变量渲染局部,然后在局部中使用它们:

    <%= render partial: "/account/plan_yearly", locals: { myclass: 'highlight' } %>
    

    这样做是为局部变量创建一个名为 myclass 的局部变量,其值为“highlight”。

    所以在部分中你可以使用这个:

    <div class="offer <%= myclass %>">
        <!--MORE HTML-->
    </div>
    

    【讨论】:

    • 谢谢你们俩的帮助!真的很感激。我现在有一个新问题。部分是用#{ } 渲染&lt;div class="offer #{myclass}"&gt; 而不是红宝石。有什么想法吗?
    • 哎呀应该是erb不应该 - 应该更新答案
    • 嘿@David,我一直在尝试让这个完全相同的东西工作,但我不断收到以下错误:未定义的局部变量或方法“myclass”。关于我做错了什么有什么想法吗?
    【解决方案2】:

    不知道这是否仍然有帮助,但我只是遇到了同样的问题,因为它可以在 rails documentation 上阅读,为了通过本地人正确传递值,明确声明你真的很重要重新渲染部分;

    正确:

    <%= render partial:"path/to/partials", locals:{bla: "bla"} %>
    

    不正确

    <%= render "path/to/partials", locals:{bla: "bla"} %>
    

    由于第二行没有明确说明渲染对象是局部的,因此传递局部变量根本不起作用...

    【讨论】:

      【解决方案3】:

      你可以将它作为变量传递

      = render "/account/plan_yearly", highlight: true
      

      然后在部分

      <div class="offer #{'highlight' if highlight}">
        <!--MORE HTML-->
      </div>
      

      【讨论】:

        【解决方案4】:

        将其作为变量传递有效!

        <%= render partial: => "/account/plan_yearly", locals: { myclass: 'highlight' } %>
        
        <div class="offer #{myclass}">
            <!--MORE HTML-->
         </div>
        

        谢谢大家!

        【讨论】:

          猜你喜欢
          • 2016-06-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多