如何在ERB元素中包含id(或类)

时间:2017-06-20 09:03:48

标签: html css ruby-on-rails erb

我有这个代码用于显示使用ERB元素从数据库中获取和显示信息的文章的注释:

<div class="comments">
  <h4 class="comment_author">Comment by <%= comment.author_name %></h4>
  <p class="comment"><%= comment.body %></p>
</div>

我想以不同的方式格式化comment.author_name,所以我想在第二行包含一个id,例如。

<h4 class="comment_author">Comment by <%= comment.author_name, id: "commenter" %></h4>

然而,当我这样做时,我得到以下error message

我在过去添加了类和id来形成元素  :class =&gt; “name”语法如下:

<%= f.submit 'Create Article', :class => 'create_new_article_button'%>

但这似乎也不适用于此。是否有不同的方法将ID和类添加到非形式的ERB元素?

提前致谢!

3 个答案:

答案 0 :(得分:3)

<%= comment.author_name %> 不是标记/元素,它只是一个值(字符串我假设)&amp;因此您无法为其添加id属性。你可以改为

<h4 class="comment_author">Comment by 
   <span id="commenter"><%= comment.author_name %></span>
</h4>

或直接将id="commenter"提供给<h4>代码&amp;用它来定位span

  

之前有效,因为f.submit指的是提交按钮,这意味着它实际上是一个HTML元素&amp;因此,您可以为其添加idclass

答案 1 :(得分:0)

您无法为内容添加ID。相反,您应该将ID添加到包装内容的元素中。在你的情况下它应该是这样的

<h4 class="comment_author" id='commenter'>Comment by <%= comment.author_name %></h4>

这将创建带有ID&#39;评论者的h4元素。

答案 2 :(得分:0)

你在这里很困惑

  

我在过去添加了类和id来形成元素   :class =&gt; &#34;名称&#34;像这样的语法:

     

&lt;%= f.submit&#39;创建文章&#39;,:class =&gt; &#39; create_new_article_button&#39;%GT;   但这似乎也没有在这里工作。

表单元素将会收到class其中一个参数。查看文档here。但<%= %>只会在视图中显示ruby代码的最终结果,但它不会将任何html内容添加到DOM中。在实施之前请仔细阅读文档。