我使用單個對象的partials像這樣:從hamls括號符號加前綴ID來防止同一ID的重複
#/app/views/people/_person.html.haml
%div[person]
= image_tag person.image
%p.name= person.full_name
%p.location= person.location
...所以我可以使用render
方法,像這樣的對象組:
#/app/views/people/index.html.haml
%ul.people
- @people.each do |person|
%li= render person
不過,如果我渲染對象不止一次,我得到相同的ID,這是不那麼好兩個元素,如果只是用於驗證的緣故。有沒有辦法讓上面的單個對象保持局部,然後在調用render時,告訴它爲id加上前綴,以使id保持唯一?
舉個例子吧。說,我有一個臉書克隆的種類。在側邊欄中,我列出了一些您可能會感興趣的人,在主要區域我列出了所有我的朋友(我目前處於人員索引視圖中),並在標題中列出了最近嘗試過的人員列表與我聯繫。這三組可能共享一些相同的人,所以我會得到具有相同ID的多個元素。我不想給他們所有的號碼,因爲哈姆會用括號表示法,我想給邊欄中的人id interesting_person_654
,標題中的人員號碼lately_calling_person_654
和主要區域中的人員(該人員從當前的角度來看)編號爲person_654
。
我該怎麼做?
我想爲命名空間使用某些選項,但渲染方法只有4個選項,命名空間不是其中之一。儘管如此,我仍然可以用monkeypatching渲染方法。我寧願不使用ID前綴邏輯來遮蔽部分對象(我甚至不得不復制粘貼到其他所有對象部分 - 不太好!)。
您是否考慮過使用'classes'。並使用'data'標籤來識別它們。 iE:「data-person-id = '12'」 –