Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在HAML中将ruby块传递给partial_Ruby On Rails_Ruby_Block_Haml_Partial Views - Fatal编程技术网

Ruby on rails 在HAML中将ruby块传递给partial

Ruby on rails 在HAML中将ruby块传递给partial,ruby-on-rails,ruby,block,haml,partial-views,Ruby On Rails,Ruby,Block,Haml,Partial Views,我已经做了一个部分,用于生成我的页面的一些布局,并且在部分中有一个空间,我需要在其中插入一个描述 描述是来自partial调用方的静态文本,非常长。所以我想把它写成一段文字 这就是我所拥有的: = render "feature", title: "Planning", text: <<-BLOCK Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut

我已经做了一个部分,用于生成我的页面的一些布局,并且在部分中有一个空间,我需要在其中插入一个描述

描述是来自partial调用方的静态文本,非常长。所以我想把它写成一段文字

这就是我所拥有的:

= 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

我宁愿使用
yield
并在
content\u中为
块提供内容

在你的部分:

%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 ...
此Rails代码将“block”/herdoc传递给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::Template.options[:suppress\u eval]=false
:红宝石

haml_io.puts render“feature”,title:“Planning”,text:谢谢,这可能会起作用,尽管我需要使用不同的文本多次调用分部,并且
content_似乎是递增的,如果我使用两次,第二次打印其内容时,它将第一个和第二个文本连接在一起。我也尝试过使用
flush:true
,但似乎没有什么不同使用
content\u for
来处理多个部分是行不通的。相反,您可以尝试将内容作为
locals
参数的一部分传递?我已经尝试过了,但为了使其有效,每次都必须为不同的名称提供内容,然后使用
test:content\u for:name
不太整洁,但这很有效。@dongiulio我的答案提供了HAML过滤器
:ruby
-在视图中呈现多个部分时,您不必更改名称的内容\u…
- 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