0

次のような content_tag を使用して、ネストされた ul li リストをレンダリングしたい

<ul>   <li>
    <div>Message1</div>    </li>    <li>
     <div>Message 2</div>
    </li> </ul>

私はこのようなヘルパーメソッドを持っています

def nested_messages(messages)
    messages.map do |message, sub_messages|
      content_tag :ul do
        content_tag :li do
          render(message) + nested_messages(sub_messages)
        end
      end 
    end.join.html_safe
end

ネストされたリストを取得できませんでした。私の出力は次のようになります

<ul>
  <li>
    <div>Message 1</div>
   </li>
</ul> 
<ul>
  <li>
    <div>Message 2</div>
  </li>
</ul>

私はどこで間違っていますか?正しいネストされたリストを取得するには?

4

1 に答える 1

3

コンテンツタグブロックmessages.map内にブロックをネストします。ul

def nested_messages(messages)
  content_tag :ul do
    messages.map do |message, sub_messages|
      content_tag :li do
        render(message) + nested_messages(sub_messages)
      end
    end.join
  end.html_safe
end
于 2012-12-05T12:03:00.577 に答える