2017-06-20 15 views
0

我具有用于显示在其上使用ERB元件获取并从数据库中显示的信息的文章评论此代码:如何包含在一个ERB元件的ID(或类)

<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

我在过去加class和id以形成与 元素:类=>“名”的语法像这样:

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

但是,这似乎并没有任何在这里工作。有没有不同的方法可以将IDS和类添加到非表单ERB元素中?

提前致谢!

+0

'

评论来自<%= comment。author_name%>

' –

+0

您试图在错误的地方添加'id'。您目前正试图在标签本身的'h4'&NOT内容中添加'id'。 –

回答

3

<%= comment.author_name %>不是标签/元件,它只是一个值(字符串我假定)&因此无法将id属性添加到它。你可以做,而不是

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

或者直接给id="commenter"<h4>标签&用它来针对span

早前曾因为f.submit提交表单的按钮,这意味着它实际上是一个HTML元素&因此你可以添加一个idclass它。

+0

我没有意识到这不是一个标签/元素,这使得很有意义!谢谢你的帮助! –

0

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

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

这将创建一个ID为'commenter'的h4元素。

0

你混淆了这里

我已经加入class和id以往以形成与 元素:类=> “名” 的语法像这样:

<%= f.submit '创建文章',:class =>'create_new_article_button'%> 但是,这似乎并没有在这里工作。

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

相关问题