Frage

In meiner Anwendung habe ich ein Modell Produkte, die unter anderem vier Feldern für Bildpfade hat. Ich benutze dies eine Dia-Show zu bauen.

Allerdings würde ich liebe all diese Pfade in einem großen Textfeld zu haben und sie durch trennen, was auch immer funktioniert (Zeilenumbrüche am einfachsten in Form zu handhaben wäre).

Ich dachte, so etwas wie:

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

und würde die Hoffnung auf, dass zu folgenden Ergebnissen führen:

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

Ihre Eingabe wird sehr geschätzt!

Val

War es hilfreich?

Lösung

Wenn Sie alle Links in einem Textfeld haben wollen, dann können Sie eine href verwenden <= „http://ruby-doc.org/core/classes/String.html#M000803“ rel = „nofollow noreferrer“ > Split .

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

Standardmäßig wird es auf Leerzeichen aufgeteilt. Aber man kann selbst Splitting Zustand definieren.

Andere Tipps

Unter der Annahme @product has_many Screenshots (und wenn nicht, verwendet @screenshots statt @ product.screenshots unten).

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

(unter Annahme lightbox_to korrekt aufgerufen wird)

Wenn das Produkt wirklich hat separate Elemente 'screenshot1' genannt, 'screenshot2' usw., dann tun:

<% [:screenshot1, :screenshot2, :screenshot3].each do |screenshot_name|
   screenshot = @product.send screenshot_name %>
  <%= lightbox_to(screenshot, screenshot, "screenshots") %>
<% end %>`
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top