Используя HAML (в Ruby on Rails), существует ли способ генерировать 50 вложенных DIV? - PullRequest
2 голосов
/ 24 мая 2011

Чтобы проверить что-то для границ CSS во вложенных DIV, необходимо сгенерировать 50 DIV. Другими словами, сгенерировать

<div>
  <div>
    <div>
      ...  total 50 of them nested
    </div>
  </div>
</div>

потому что

- 50.times do
  %div 

не пойдет, так как все они будут параллельными, а не вложенными.

Ответы [ 3 ]

4 голосов
/ 24 мая 2011

Упрощенно, но, похоже, работает.

- 50.times do
  <div>
- 50.times do
  </div>

v2 - Все еще упрощенно, но дает больше возможностей.

- 50.times do |i|
  != "<div style='border-style:#{cycle('dotted','dashed')}'>".rjust(i+35)
  = i
- 50.downto(1) do |i|
  != "</div>".rjust(i+35) 
1 голос
/ 24 мая 2011

Вы можете попробовать это:

module ApplicationHelper

  def recursive_divs(number)
    if number > 0
      number -= 1
      content_tag :div do
        recursive_divs(number)
      end
    end
  end

end

И использовать его на свой взгляд:

= recursive_divs(50)

надеюсь, это поможет

0 голосов
/ 24 мая 2011

Ты рядом.Все, что вам нужно сделать, это добавить 2 пробела для каждой итерации цикла.

- 50.times do |i|
  ="#{' ' * (i*2)}"%div

Часть ' ' * (i*2) использует тот факт, что строки можно умножать.

...