簡體   English   中英

我如何在Ruby on Rails中讀取文件

[英]How can i Read a file in Ruby on Rails

我是rails的新手,我試着讀取一個如下所示的txt.file:

托馬斯林德; 彼得帕克; 星期一

JulkoAndrovic; KeludowigFrau; 星期二

JohannesWoellenstein; SiegmundoKrugmando; 星期三

現在我想讀取.txt文件的每個“列”,以在我的應用程序的頁面上顯示它。 我對代碼的想法如下:

if (File.exist?("Zuordnung_x.txt"))
   fi=File.open("Zuordnung_x.txt", "r")
   fi.each { |line|
      sa=line.split(";")
      @nanny_name=sa[0]
      @customer_name=sa[1]
      @period_name=sa[2]
   }
   fi.close
else
   @nanny_name=nil
   @customer_name=nil
   @period_name=nil
   flash.now[:not_available] = "Nothing happened!"
end

這是我的想法,但他只給我一行。 有任何想法嗎? 或者如果我使用@nanny_name我只能讀一行?

您只需要一個具有數組值的變量,並將每一行推送到它。

@result = []
if (File.exist?("Zuordnung_x.txt"))
  fi=File.open("Zuordnung_x.txt", "r")
  fi.each do |line|
    sa=line.split(";")
    @result << {nanny_name: sa[0], customer_name: sa[1], period_name: [2]}
  end
  fi.close
else
  flash.now[:not_available] = "Nothing happened!"
end

在視圖模板上,你需要每個@result ,例子

<% @result.each do |row| %>
   <p><%= "#{row[:nanny_name]} serve the customer #{row[:customer_name]} on #{row[:period_name]}"  %><p>
<% end %>

可選的 :

如果只使用split ,可能會在字符串的開頭或字符串的結尾處獲得一些帶有空格的字符串

"ThomasLinde ; PeterParker ; Monday".split(';')
 => ["ThomasLinde ", " PeterParker ", " Monday"] 

要處理它,你需要strip數組的每個值,如下所示:

"ThomasLinde ; PeterParker ; Monday".split(';').map(&:strip)
 => ["ThomasLinde", "PeterParker", "Monday"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM