2016-07-04 1 views
0

Я играл с sass и при этом сталкивался с файлами .erb и как я могу использовать их с частичными файлами для создания полного html-документа. Мне интересно, возможно ли это, и если да, то, чтобы создать частичный .erb-файл, который затем можно отобразить в главном html, но используя аргументы для передачи содержимого. Похоже, я догадываюсь, как mixin/function in sass может генерировать css?erb partials с аргументами для генерации контента

Я хочу, чтобы иметь возможность передать команду для создания раздела, содержащего три столбца, и внутри них указано количество разделов, содержащих списки.

div.section 
    div.column 
    ul 
     li 
     li 
    div.column 
    ul 
     li 
     li 
     li 

Все, что вы можете предоставить в качестве помощи, даже просто простой пример, показывающий синтаксис требуемого будет супер полезно в получении меня на моем пути.

ответ

0

Вы можете использовать content_tag помощника для секции DIV и помощником для списка уль:

Эрба код:

<%= content_tag(:div, class: 'section') do %> 
    <%= ul_list([1,2]) %> 
    <%= ul_list([1,2,3]) %> 
<% end %> 

app/helpers/application_helper.rb:

def ul_list(arr) 
    content_tag :div, class: 'column' do 
     content_tag :ul do 
     concat(raw(arr.map { |l| content_tag(:li, l) }.join)) 
     end 
    end 
    end 

Данный код генерации ниже HTML:

<div class="section"> 
     <div class="column"> 
      <ul> 
       <li>1</li> 
       <li>2</li> 
      </ul> 
     </div> 
     <div class="column"> 
      <ul> 
       <li>1</li> 
       <li>2</li> 
       <li>3</li> 
      </ul> 
     </div> 
    </div> 
+0

Цените ответ. Можете ли вы рассказать об этом в мою пользу, хотя, пожалуйста, извините (!), Я раньше не делал никаких рельсов, и я просто использую файлы .erb в изоляции. Как я могу получить helper.rb, о котором вы описали, чтобы ссылаться, поскольку я получаю синтаксические ошибки, просто помещая код erb в index.html.erb, например. Нужно ли структурировать вещи определенным образом и т. Д. Или есть способ импортировать его в файл для использования? – Cigol

+0

@Cigol Вы могли бы поделиться полученной вами ошибкой? И как вы используете мой пример? Мне непонятно, что вы просите. –

+0

Извините за поздний ответ, я получаю: SyntaxError at/index.html.erb: 74: синтаксическая ошибка, неожиданная ')' ... ag (: div, class: 'section') do) .to_s; @_out_buf << '...^index.html.erb: 88: синтаксическая ошибка, неожиданное keyword_ensure, expecting') 'index.html.erb: 90: синтаксическая ошибка, неожиданное keyword_end, expecting') ' * путь Я использую его * через посредника, и я определил ваш помощник в config.rb. – Cigol