2017-06-20 14 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。在執行某些操作之前,請仔細閱讀文檔。

相關問題