2016-05-13 37 views
-1

塊內容我有這段代碼的.rb文件中:在段落中如何調用從HTML

main_content_blocks do 
    5.times.map do |position| 
    { 
     id:      rand(10..100), 
     position:    position, 
     block_type:    'text', 
     text_markdown:   "**This is the Markdown number #{position}**", 
     library_image_id:  nil, 
     library_image_alt_text: nil, 
     library_image_title: nil, 
     library_image_caption: nil, 
    } 
    end 
end 

從HTML,比如我需要調用main_content_blocks的不同選項.. 。例如ID,text_markdown等... 如何使用ruby <%>編寫HTML?

+0

只要您在控制器中將main_content_blocks定義爲實例變量,就可以在您的html模板中運行此塊。您可以使用<%=標籤在視圖中輸出您需要的內容。 – bkunzi01

+0

嗨bkunzi01,謝謝你的回答。如我所說,我是新來的紅寶石。所有的控制器和曼波詹博已經完成了。我需要HTML位。你能在這裏提供熱點目標(例如)text_markdown嗎?或許?<%= main_content_blocks.text_markdown%>? – Jonathan

+0

哪個.rb文件和哪個函數包含此代碼?正如@ bkunzi01所說的,你需要在控制器的相應操作中將此作爲一個實例變量 - 就像'@main_content_blocks = main_content_blocks這樣做......' - 你真的嘗試過輸出main_content_blocks ruby​​代碼嗎?在那裏的ruby代碼有幾個錯誤,從'未定義的變量main_content_blocks'開始。 – Anand

回答

0

詳細闡述bkunzi01的響應 - 在控制器中創建一個變量後,在視圖中訪問main_content_blocks變量只需將@添加到需要的變量的開頭,這將使其成爲實例變量。例如,如果你正在打你的ExampleController#索引路線。

controllers/example_controller.rb

class ExampleController < ApplicationController 
    def index 
    @view_data = 
     main_content_blocks do 
     5.times.map do |position| 
      { 
      id:      rand(10..100), 
      position:    position, 
      block_type:    'text', 
      text_markdown:   "**This is the Markdown number #{position}**", 
      library_image_id:  nil, 
      library_image_alt_text: nil, 
      library_image_title: nil, 
      library_image_caption: nil, 
      } 
      end 
     end 
    end 
end 

然後在視圖(使用HTML和ERB)

views/example/index.html.erb

<div> 
    <% @view_data.each do |data| %> 
     <h1><%= data[:id] %></h1> 
    <% end %> 
</div> 

會使像下面的一些事情:

<div> 
    <h1>1</h1> 
    <h1>2</h1> 
    <h1>3</h1> 
    <h1>4</h1> 
    <h1>5</h1> 
</div> 
+0

Rails很聰明,知道你的路由何時去到ExampleController#index,需要被渲染的視圖位於views/example/index .html'沒有你需要明確告訴它。控制器方法中設置的任何實例變量都可以在其相應的視圖中使用erb語法:<%@something%>不會顯示某些內容,但會對其進行評估。 <%= @something%>將顯示變量的值 –