如何从HTML调用块内容

时间:2016-05-13 13:01:11

标签: html ruby-on-rails ruby

我在.rb文件中有这段代码:

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 ?

1 个答案:

答案 0 :(得分:0)

详细说明bkunzi01的响应 - 要在控制器中创建对main_content_blocks变量的访问权限,只需在所需变量的开头添加@即可将使它成为一个实例变量。例如,如果您正在使用ExampleController #index路由。

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>