2014-01-28 89 views
1
部分

我已經做了局部產生了一些我的網頁佈局,我有在部分一個空間,我需要插入一個說明。通紅寶石塊在HAML

的描述是從局部的主叫靜態文本,這是相當長的。所以我想寫它作爲一個文本塊。

這是我有:

= render "feature", title: "Planning", text: <<-BLOCK 
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
BLOCK 

但是當我試圖渲染頁面,我得到:

can't find string "BLOCK" anywhere before EOF 

回答

1

我寧願用一個yield,並提供以content_for塊內容。

在您的部分:

%p Other content wrapping the block of text 
= yield :text_block 
%p Other content wrapping the block of text 

然後在您的視圖:

= content_for :text_block do 
    The content you need to insert goes here ... 
+0

謝謝你,這可能工作,但我需要調用部分多次用不同的文字和'content_for'似乎如果我使用它兩次,第二次打印它的內容時,它將連接第一個和第二個文本。 我使用'沖洗嘗試:TRUE'過,但似乎並不有所作爲 –

+0

使用'content_for'多個諧音將無法正常工作。相反,您可以嘗試將內容作爲「本地」參數的一部分進行傳遞? – Jon

+0

我已經試過了,但要使它工作,我不得不放棄了content_for不同的名字,每一次,然後使用'測試:content_for:name' 不太整齊,但這個工程。 –

1

這Rails代碼傳遞一個HAML視圖內的 「塊」/定界符到部分:

- Haml::Template.options[:suppress_eval] = false 
:ruby 
    haml_io.puts render "feature", title: "Planning", text: <<BLOCK 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
    BLOCK 

(使用HAML 4.0.5和Rails 3.2.13)