在我的应用程序中,我有一个.txt
文件,我在用户个人资料视图中open/read
。该.txt
文件包含一些数字。
这是我到目前为止所做的:
f = File.open("public/users/14/user.txt", "r")
- f.each_line do |d|
%p= d
我可以put
输出该文件中的所有数字。是否可以添加limit
& order (start from bottom to top)
。
我试过了:
f.limit(4).order('DESC').each_line do |d|
和
File.open("public/users/14/user.txt", "r").limit(5)
当我尝试这些时,我收到错误:undefined method limit
或undefined method order
。
是否也可以sum
该文件中的所有数字?
答案 0 :(得分:1)
这应该有效:
@lines = IO.readlines('public/users/14/user.txt').sort.reverse.first(4)
IO.readlines
将所有行读入数组Array#sort
对数组进行排序(升序)Array#reverse
反转数组(使其下降)Array#first
返回第一个 n 元素您应将上述内容放入控制器并在视图中使用:
- @lines.each do |line|
%p= line
答案 1 :(得分:0)
这些是rails提供的ActiveRecord方法。我建议你阅读ruby的IO
文档。 Here是文档。
语法类似于read(name, [length [, offset]] ) → string
并且使用就像IO.read("testfile", 20, 10)
这里20是字节长度,10是偏移量。
答案 2 :(得分:0)
您可以在这种情况下使用范围。在这个例子中,它从第4行从底部一直读到最后一行。
File.open(FILE) do |f|
f.readlines[-4..-1]
end