2015-12-08 2 views
2

Я нашел много информации о том, как передавать данные, json, строки и т. Д. В частичные, но я хотел бы передать частичное в другое частичное. Вот мой код до сих пор:Rails 4: Могу ли я передать частичное в частичное?

Мой parent.html.erb

    <%= render partial: 'shared/faq_question', locals: { 
        id: '1', 
        question: 'A question I\'m asking', 
        answer: 'A string answer that does\'nt cause any problems' 
        } %> 
    
        <%= render partial: 'shared/faq_question', locals: { 
        id: '2', 
        question: 'A question that requires an HTML answer', 
        answer: 'THE PARTIAL SHOULD GO HERE' 
        } %> 
    
    </ul> 
    

    Мой _faq_question.html.erb

    <li id="question<%= id %>"> 
    
        <a href="#question<%= id %>" class="ca" data-activate="#question<%= id %>" data-method2="toggle"> 
        <i class="close-icon"></i> 
        <span><%= question %></span> 
        </a> 
    
        <div> 
        <p><%= answer %></p> 
        </div> 
    
    </li> 
    

    До сих пор, так хорошо. Второй вопрос выше, имеет содержание, которое имеет содержание HTML в нем, как так:

    <%= render partial: 'shared/faq_question', locals: { 
        id: '22', 
        question: 'A question that requires an HTML answer?', 
        answer: "<span>Something</span> 
        <ul> 
         <li>Some foo</li> 
         <li>Some bar</li> 
         <li>Content</li> 
        </ul> 
    
        <span>Keep in mind:</span> 
        <ul> 
         <li>There is more </li> 
         <li>This is great</li> 
        </ul> 
    
        <span>Please note:</span> 
        And another sentence".html_safe 
        } %> 
    

    Я хотел бы заменить ответ с частичным.

    Мой _answer.html.erb частичный

    <span>Something</span> 
    <ul> 
        <li>Some <%= foo %></li> 
        <li>Some bar <%= foofoo %></li> 
        <li>Content <%= bar %></li> 
    </ul> 
    
    <span>Keep in mind:</span> 
    <ul> 
        <li>There is more </li> 
        <li>This is great</li> 
    </ul> 
    
    <span>Please note:</span> 
    And another sentence 
    

    Я попытался добавить в частичном фрагменте кода и использовать html_safe, но это ломается и приходит с ошибками, когда браузер делает, что есть синтаксические ошибки, что потому что частичный ответ не сбрасывается правильно.

    Что я пробовал:

    answer: <%= render partial: 'shared/faq_question' %>.html_safe 
    

    И

    answer: (<%= render partial: 'shared/faq_question' %>).html_safe 
    

    И

    answer: "<%= render partial: 'shared/faq_question' %>".html_safe 
    

    Что мне нужно сделать, чтобы правильно избежать частичного и получить его визуализировать в браузере?

    Я также хочу передать данные во вторую частичную заменить следующие переменные:

    <li>Some <%= foo %></li> 
    <li>Some bar <%= foofoo %></li> 
    <li>Content <%= bar %></li> 
    
  • Foo
  • foofoo
  • бар

Любая помощь или идеи в правильное направление будет высоко оценено. Спасибо!

ответ

2

Вы уже в рубиновой блоке, нет необходимости в дополнительных ERB-тегов, попробуйте

answer: render(partial: 'shared/faq_question') 
+0

О, так очень просто! Можете ли вы сказать, что у меня нет опыта работы с Rails? ;) Большое спасибо! – alengel

Смежные вопросы