繁体   English   中英

使用推杆

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM