Ruby on rails 如何在没有<;%的情况下以RTHTML输出文本=变量%>;
在过去的几天里,我一直在寻找这个问题的解决方案。这是一个简单的烦恼,但我讨厌不知道如何做事 环境:Ruby、Rails、rhtml 问题是:当我在rhtml中迭代一个集合时,我想减少我使用的和标记的数量。以下内容似乎过于夸张: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=
编辑:如何排除块内部
我宁愿做:
<% @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。开始需要一些时间来适应,但之后我保证你不会回头。你的模板最终会变得噪音小得多。