我的项目目录中有一个文本文件,其中包含网站链接以及徽标的位置。例如:
img1 = {name => "logo1", link => "http://example.com", imgpath => "img/logo1.png"}
img2 = {name => "logo2", link => "http://foobar.com", imgpath => "img/foobar.png"}
img3 = {name => "logo3", link => "http://foobar.com", imgpath => "img/foobar2.png"}
我想要做的是遍历该文本文件以显示每个图像及其链接。我到处搜索过,似乎无法找到一个如何做到这一点的好例子。这是我在页面中到目前为止的for循环:
- File.open("img/logos.txt").readlines.each do |name,link,imgpath|
.col-sm-6.col-md-4.col-lg-3
.item-work
.hover
%img{:alt => "Image", :src => "img/#{imgpath}"}/
%a.lightbox-image{:href => "#{link}", :title => "Image"}/
.overlay
.info
%a{:href => "#{name}"} #{name}
我有点接近,页面加载所有徽标,除了图像不在那里,链接与它们相关联。我知道这是因为我没有在我的%img
链接和%a
标记中正确调用它们,但我似乎无法弄明白。你会怎么建议这样做?
答案 0 :(得分:1)
#readlines
将以字符串形式提供文本文件的每一行。根据你的评论,这可以说是好的:
logos.txt:
logo1,http://example.com,img/logo1.png
logo2,http://foobar.com,img/foobar.png
logo3,http://foobar.com,img/foobar2.png
哈姆尔:
- File.open("img/logos.txt").readlines.each do |line|
- img = line.split(',').map(&:chomp)
.col-sm-6.col-md-4.col-lg-3
.item-work
.hover
%img{:alt => "Image", :src => "img/#{img[2]}"}/
%a.lightbox-image{:href => "#{img[1]}", :title => "Image"}/
.overlay
.info
%a{:href => "#{img[0]}"} #{img[0]}
第二行是创建一个值数组,如下所示:
[1] pry(main)> line
=> "logo1,http://example.com,img/logo1.png\n"
[2] pry(main)> line.split(',').map(&:chomp)
=> ["logo1", "http://example.com", "img/logo1.png"]