簡體   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