[英]Using puts in rails
我在控制器中有以下代码:
array = ["asd", "asd", "asd"]
@print = array.each do |i|
puts "Random text #{i}"
end
现在,我想在某些页面视图(例如show.html.erb)中打印它:
<%= @print >
而我得到这个: ["asd", "asd", "asd"]
但是,在控制器我sayd到puts
在阵列中的每个对象,但它没有这样做呢?
puts
方法用于将字符串打印到控制台。 如果要将数组的每个值设置为某个值以便以后打印出来,则应使用#map
。
array = ['asd', 'asd', 'asd']
@print = array.map { |i| "Random text #{i}" }
现在,在相应的视图中,您应该添加:
<% @print.each do |val| %>
<%= val %>
<% end %>
您应该在视图中进行循环。 这有助于保持应用程序逻辑和视图代码之间的分离。
控制者
@array = ["asd", "asd", "asd"]
视图
<% @array.each do |i|
<%= i %> # No need to use the puts method here
<% end %>
在大多数情况下, puts
打印内容输出到标准输出(标准输出),该输出与启动Rails服务器的控制台相对应。
检查控制台,您将在请求日志的中间找到puts
语句的结果。
从控制台打印出某些内容的更好方法是使用Rails记录器,尤其是如果您希望将这样的输出记录在生产环境的日志中。
Rails.logger.info "message"
假设它仅用于调试目的,那么可以使用puts
(或p
)。
看来变量@print是数组。 该控制器在每次页面加载时运行一次,然后将其内容最后输出到视图。 另外,“ puts”用于将字符串打印到控制台。 您应该在如下视图中放入有问题的循环:
<% @array.each do |i| %>
<%= i @>
<% end %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.