0

私のアプリケーションには、とりわけ画像パスの4つのフィールドを持つ製品モデルがあります。これを使ってスライドショーを作成します。

ただし、これらすべてのパスを1つの大きなテキストフィールドに入れて、機能するもので区切ってください(改行はフォームで処理するのが最も簡単です)。

私は次のようなことを考えていました:

<% for ... in @screenshots %>  
    <%= lightbox_to(@product.screenshot, @product.screenshot, "screenshots") %>  
<% end %>  

そして、その結果が次のようになることを望んでいます。

<%= lightbox_to(@product.screenshot1, @product.screenshot1, "screenshots") %>  
<%= lightbox_to(@product.screenshot2, @product.screenshot2, "screenshots") %>  
<%= lightbox_to(@product.screenshot3, @product.screenshot3, "screenshots") %>  
...

あなたの入力は大歓迎です!

ヴァル

4

2 に答える 2

1

1つのテキストフィールドにすべてのリンクを含める場合は、 splitを使用できます。

<% @product.screenshots.split.each do |screenshot| %>
  <%= lightbox_to(screenshot, screenshot, "screenshots" %>
<% end %>

デフォルトでは、空白で分割されます。ただし、分割条件は自分で定義できます。

于 2010-01-06T13:26:52.723 に答える
0

@product has_manyスクリーンショットを想定します(そうでない場合は、以下の@ product.screenshotsの代わりに@screenshotsを使用します)。

<% @product.screenshots.each do |screenshot| %>
   <%= lightbox_to(screenshot, screenshot, "screenshots") %>
<% end %>

(これは、lightbox_toが正しく呼び出されていることを前提としています)

製品に「screenshot1」、「screenshot2」などの名前の個別のメンバーが実際にある場合は、次のようにします。

<% [:screenshot1, :screenshot2, :screenshot3].each do |screenshot_name|
   screenshot = @product.send screenshot_name %>
  <%= lightbox_to(screenshot, screenshot, "screenshots") %>
<% end %>`
于 2010-01-06T13:01:40.483 に答える