Рендеринг вложенных / потоковых комментариев - PullRequest
0 голосов
/ 07 мая 2011

После этого ТАК я пытаюсь сделать комментарии с отступами, используя плагин act_as_tree rails, но безуспешно.

Я считаю, что проблема заключается в этом методе (который я не понимаю):

def indented_render(num, *args)
  render(*args).gsub(/^/, "\t" * num)
end

Что заменяет этот метод? Моя часть выглядит следующим образом:

%div{:id => "comment_#{comment.id}"}
  = comment.body
  = render :partial => 'comments/comment', :collection => comment.children
  - unless comment.children.empty?
    = indented_render 1, :partial => 'comments/comment', :collection => comment.children

Однако ни одна из строк не имеет отступа. Что я делаю неправильно? Есть ли лучший способ сделать комментарии?

Обновление: Это сгенерированный html:

<h1>Listing comments</h1>
<table>
  <tr>
    <td>
        <div id='comment_1'>
          (152) Facebook version of you: 400 friends. Real version of you: 4 friends
        <div id='comment_2'>
          (0) Well played.
            <div id='comment_3'>
              (0) I used to. Then I got married.
                <div id='comment_4'>
                  (17) math is hard
                    <div id='comment_5'>
                      (1) What's a math?
                        <div id='comment_6'>
                          (1) This made coke come out my nose.
                            <div id='comment_7'>
                              (2) So maybe I wasn't the best with fractions.
                            </div>
                            <div id='comment_8'>
                              (1) That sounds terribly painful. Please accept my apologies. Isn't it supposed to be going in your nose, not out?
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

1 Ответ

2 голосов
/ 08 мая 2011

Я думаю, что вкладки просто делают сгенерированный HTML-файл немного красивее. Похоже, что результирующий HTML правильно вложен для создания древовидной структуры, вам просто нужно немного CSS. Прежде всего, вам, вероятно, нужен класс для оболочки комментариев <div> s, поэтому измените его:

%div{:id => "comment_#{comment.id}"}

к этому:

%div{:id => "comment_#{comment.id}", :class => 'comment'}

А потом, где-нибудь в CSS, попробуйте это:

.comment {
    margin-left: 20px;
}

Это должно сделать отступ для вложенных <div> s, чтобы дать вам начало древовидной структуры.

Похоже, вы используете HAML, и мой HAML не так уж хорош, но, надеюсь, вышеприведенное достаточно близко, чтобы исправить что-то полезное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...