Ruby on Rails, как структурировать этот HAML-код, чтобы он не включал <div>на верхнем уровне? - PullRequest
1 голос
/ 30 июля 2010

, если HAML:

.class1
  .class2
    .class3
      %div 
        content... many lines

Как сделать так, чтобы он не отвечал с class1 и class2, если это Ajax?

- if !request.xhr?
  .class1
    .class2

.class3
  %div 
    content... many lines

не будет работать, потому что если не Ajax, то class3 не является потомком class2. Это может быть что-то вроде

- if !request.xhr?
  .class1
    .class2
      .class3
        %div 
          content... many lines 
- else
  .class3
    %div 
      content... many lines

и он повторяет много кода. Это может быть структура в одном файле? Или вторая часть превращена в частичную?

1 Ответ

0 голосов
/ 30 июля 2010

Мне кажется, что вы действительно хотите частичное - тот факт, что нет хорошего способа сделать это с этой иерархией, является для меня хорошим знаком того, что вы хотите частичное.Затем вы можете использовать его в другом месте, легко визуализировать коллекцию или просто разделить этот код на части.

Кроме того, если такая необходимость возникает в других местах вашего проекта, вы можете рассмотреть возможность использования другого значения по умолчанию макеты для различных форматов ответов.

Однако вы можете также рассмотреть этот шаблон:

%div{:class => expr ? 'one' : 'two'}

, который будет варьировать класс на основе expr.У вас все равно останутся дополнительные div, но они могут быть другого пользовательского класса.

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