Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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 如何在没有<;%的情况下以RTHTML输出文本=变量%>;_Ruby On Rails_Ruby_Rhtml - Fatal编程技术网

Ruby on rails 如何在没有<;%的情况下以RTHTML输出文本=变量%>;

Ruby on rails 如何在没有<;%的情况下以RTHTML输出文本=变量%>;,ruby-on-rails,ruby,rhtml,Ruby On Rails,Ruby,Rhtml,在过去的几天里,我一直在寻找这个问题的解决方案。这是一个简单的烦恼,但我讨厌不知道如何做事 环境:Ruby、Rails、rhtml 问题是:当我在rhtml中迭代一个集合时,我想减少我使用的和标记的数量。以下内容似乎过于夸张: 编辑:如何排除块内部 我宁愿做: <% @products.each do |p| puts @p.name end %> 在某些情况下,可以使用以下两种方法之一。。。但是,我知道我可以用jsp实现这一点: <% for(int i=

在过去的几天里,我一直在寻找这个问题的解决方案。这是一个简单的烦恼,但我讨厌不知道如何做事

环境:Ruby、Rails、rhtml

问题是:当我在rhtml中迭代一个集合时,我想减少我使用的和标记的数量。以下内容似乎过于夸张:


编辑:如何排除块内部

我宁愿做:

<% @products.each do |p| 
  puts @p.name 
end %>

在某些情况下,可以使用以下两种方法之一。。。但是,我知道我可以用jsp实现这一点:

<% for(int i=0; i<10;i++){
  System.out.print(i);
} %>

使用打印而不是放置。

使用打印而不是放置。

如果您的视图代码看起来过于臃肿,则根据上下文的不同,还有其他几种可能性:

  • 使用partials。例如:
在主文件中:

<%= render(:partial => "product", :collection => products) %>
“产品”,:集合=>产品)%>
在局部,只需使用:

<%= product.name %>

现在,这似乎是为这样一个简单的例子设计的,但假设有更复杂的东西,它会抽象掉循环,使代码更清晰

  • 使用助手方法

如果您的视图代码过于臃肿,根据上下文的不同,还有其他几种可能性:

  • 使用partials。例如:
在主文件中:

<%= render(:partial => "product", :collection => products) %>
“产品”,:集合=>产品)%>
在局部,只需使用:

<%= product.name %>

现在,这似乎是为这样一个简单的例子设计的,但假设有更复杂的东西,它会抽象掉循环,使代码更清晰

  • 使用助手方法

您也可以尝试使用类似haml的工具来清理模板(以及帮助程序和部分)。

您也可以尝试使用类似haml的工具来清理模板(以及帮助程序和部分)。

如果您不想太详细,请查看haml,并结合您的示例:

- @products.each do |p|
  = @p.name

如果您不想太冗长,请查看haml,以您的示例为例:

- @products.each do |p|
  = @p.name

你将不得不使用一个你将不得不使用一个感谢的帮助。不幸的是,这不起作用;似乎_erbout变量不可用。错误:未定义的局部变量或#的方法`_erbout`;谢谢您的帮助。不幸的是,这不起作用;似乎_erbout变量不可用。错误:未定义的局部变量或#的方法“_erbout”;问题是如何排除块内部问题是如何使用Haml排除块内部+1。开始需要一些时间来适应,但之后我保证你不会回头。你的模板最终噪音小得多。使用Haml时+1。开始需要一些时间来适应,但之后我保证你不会回头。你的模板最终会变得噪音小得多。