سؤال

في طلبي لدي نموذج منتجات له من بين أشياء أخرى أربعة حقول لمسارات الصور. يمكنني استخدام هذا لبناء عرض شرائح.

ومع ذلك، أحب أن أحصل على كل هذه المسارات في حقل نص كبير واحد وترولها بأي نوع من الأعمال (سيكون الاستقصاء الأسهل في التعامل مع النموذج).

كنت أفكر شيئا مثل:

<% 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") %>  
...

لقد قدرنا مساهمتك جدا!

فال

هل كانت مفيدة؟

المحلول

إذا كنت ترغب في الحصول على جميع الروابط في حقل نص واحد، فيمكنك استخدامها الانقسام.

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

بشكل افتراضي، سيتم تقسيم على المساحات البيضاء. ولكن يمكنك تحديد حالة تقسيم بنفسك.

نصائح أخرى

على افتراض Product Has_many Screenshots (وإذا لم يكن كذلك، فاستخدم Screenshots بدلا من @ Product.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 %>`
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top