2015-12-08 19 views
2

我發現了很多關於如何將數據,json,字符串等傳遞給partial的信息,但是我想將一個partial傳遞給另一個partial。這是我到目前爲止的代碼: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> 
    
  • foofoo

任何幫助或想法在正確的方向將受到高度讚賞。 謝謝!

回答

2

你已經在紅寶石塊,不需要額外的ERB-標記,可以嘗試

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

哦,所以很簡單!你能告訴我,我對Rails沒有經驗嗎? ;) 非常感謝! – alengel