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