我正在尝试将控制器中定义的简单数组打印到我的视图中,并为每个元素添加一个新行。但它所做的是将整个数组打印在一行上。
这是我的控制器:
class TodosController < ApplicationController
def index
@todo_array = [ "Buy Milk", "Buy Soap", "Pay bill", "Draw Money" ]
end
end
这是我的观点:
<%= @todo_array.each do |t| %>
<%= puts t %><\br>
<% end %>
结果如下:
<\br> <\br> <\br> <\br> ["Buy Milk", "Buy Soap", "Pay bill", "Draw Money"]
Erb(您在视图中使用的模板引擎)有几种不同的方法将 ruby 代码嵌入到模板中。
当你把代码放进去时<%= %>
块中,erb 计算内部代码并打印 HTML 中最后一条语句的值。自从.each
在 ruby 中返回您迭代的集合,循环使用<%= %>
尝试打印整个数组的字符串表示形式。
当你把代码放进去时<% %>
块,erb 只是评估代码,不打印任何内容。这允许您执行条件语句、循环或修改视图中的变量。
您还可以删除puts
from puts t
。 Erb 知道尝试转换它在内部看到的最后一个值<%= %>
转换成字符串进行显示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)