Rails 在我看来创建了一个缩略图库

发布于 2024-10-11 12:28:42 字数 1226 浏览 6 评论 0原文

我目前有一个数组,其中包含一些图像的 URL。

@images = [ "http://site/images/01.jpg", "http://site/images/02.jpg" ]

共18张图片

I我想要使​​用这个数组并创建一个缩略图库,其中在我的视图中该库有 3 列。 HTML 输出将是

<表>










我的当前实现为我提供了一个单列表格



<% @images.each 做 |图像| %>


<% end %>

<%= image_tag(image)%>

将来我可能希望它是 6 列而不是 3 列。 我正在寻找一种以干净、灵活的方式做到这一点的方法。

我正在查看Ruby文档,我看到了这个 类别范围(rng.step方法) http://www.ruby-doc.org/core/classes/Range.html

不确定这个 Range 类step 方法是否可以解决问题,但它提供的示例很有趣。

有什么想法吗,我还在学习,也许我想太多了?

I currently have an Array that contains some URL's to images.

@images = [ "http://site/images/01.jpg", "http://site/images/02.jpg" ]

Total 18 images

I would like to take this array and create a thumbnail gallery where the gallery is 3 columns across in my view. The HTML out put would be


<table>
<tr>
<td><img src="http://site/images/01.jpg"></td>
<td><img src="http://site/images/02.jpg"></td>
<td><img src="http://site/images/03.jpg"></td>
</tr>
<tr>
<td><img src="http://site/images/04.jpg"></td>
<td><img src="http://site/images/05.jpg"></td>
<td><img src="http://site/images/06.jpg"></td>
</tr>
</table>

My current implementation gets me a one column table

<table>
<tr>
<% @images.each do | image | %>
<td><%= image_tag(image)%></td><br>
<% end %>
</tr>
</table>

In the future I might want it to be 6 columns instead of 3 columns.
I'm looking for a way to do this in a clean and flexible way.

I was looking at the Ruby documentation and I saw this
Class Range (rng.step method)
http://www.ruby-doc.org/core/classes/Range.html

Not sure if this Range class step method can solve the problem but the example it provides is interesting.

Any thoughts, I'm still learning and maybe I'm over thinking this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╰ゝ天使的微笑 2024-10-18 12:28:42

使用each_slice()

<table>
  <% @images.each_slice(3) do |images| %>
    <tr>
      <% images.each do |image| %>
        <td><%= image_tag(image) %></td>
      <% end %>
    </tr>
  <% end %>
</table>

use each_slice()

<table>
  <% @images.each_slice(3) do |images| %>
    <tr>
      <% images.each do |image| %>
        <td><%= image_tag(image) %></td>
      <% end %>
    </tr>
  <% end %>
</table>
一个人的夜不怕黑 2024-10-18 12:28:42

未经测试。您需要使用 each_with_index 和模 % 运算符。

<% @images.each_with_index | image, index | %>
   <% unless index % column_count == 0 %>
         <td><%= image_tag(image)%></td>
   <% else %>
         <td><%= image_tag(image) %></td>
      </tr>
      <tr>
   <% end %>
<% end %>

Untested. You need to use each_with_index and the modulus % operator.

<% @images.each_with_index | image, index | %>
   <% unless index % column_count == 0 %>
         <td><%= image_tag(image)%></td>
   <% else %>
         <td><%= image_tag(image) %></td>
      </tr>
      <tr>
   <% end %>
<% end %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文