我有这个代码用于显示使用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元素?
提前致谢!
答案 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;因此,您可以为其添加id
或class
。
答案 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中。在实施之前请仔细阅读文档。