2010-06-01 1 views
3

게시물 모델이 있습니다. 게시물에는 많은 의견이 있습니다. 을 사용하여 post.comments<ul> 요소를 생성하고 싶습니다. 7 게시물의 ID입니다content_tag_for 레일스 컬렉션?

이상적으로

<ul id="comments_post_7" class="comments"> 
... 
</ul> 

을 생산하는 것입니다.

내가 얻을 수있는 가장 가까운는 class="post"를 제외하고, 꽤 가까운

<ul id="comments_post_7" class="post"> 
... 
</ul> 

을 생산

<% content-tag-for :ul post, :comments do %> 

사용합니다. content_tag_for:class => :comments을 사용하면 class="post comments"이되지만, 단지 class="comments"이 필요합니다.

내가 수익률

<ul id="array_2181653100" class="array"> 
... 
</ul> 

내가 널리 검색 한 것으로, 슬프게도

<% content_tag_for :ul post.comments do %> 

하지만, 같은 것을 사용할 수있을 거라고 논리적 보인다. 나는 이것을하기위한 우아한 방법을 놓치고있는 것처럼 느껴진다. 내가? 왜냐하면, 진지하게, <ul id="comments_post_<%= post.id %>" class="comments">은 아프다.

+0

코드를 코드로 표시하는 특별한 방법이 있습니다. 네 개의 공백을 사용하거나 1011010을 읽는 버튼을 사용하면됩니다. 귀하의 코드에서 다른 사람들처럼 강조하고 읽을 수 있습니다. – Pablo

+0

팁 주셔서 감사! – nickpatrick

답변

2

당신의 옵션을 사용할 수 있습니다 다음 posts_helper.rb에 : 귀하의 의견에

module PostsHelper 
#This is specific only to your posts controller and only for your case!! 
#This can be made more generic though! 

def generate_ul(content) 
    content_tag(:ul, content, :class => "comments", :id => "comments_post_#{post.id}") 
end 
end 

을 : 나는 @의 shingara의 답변을 확장하여이 작업을 수행 할 것

<% content_tag_for(:ul, post.comments, :id => "comments_post_#{post.id}", :class => "comments") do %> 
    xxx 
<% end %> 
+0

감사합니다. 나는 이것이 합리적인 타협이라고 생각한다. 그래도 나는 이것에 의지해야한다고 아직도 실망했다. 다른 장소에서이 패턴을 사용하는 것을 발견하면 Shripad가 아래에 제안한대로 도와 줄 것입니다. – nickpatrick

0

클래스 : ID와

<%=h generate_ul(post.comments) %>