2016-12-14 5 views
0

Привет, скажем, у меня есть фиксированное количество продуктов (например, 5 продуктов). В моей HTML-форме, если я хотел бы использовать форму для отображения всех продуктов, чтобы пользователь мог щелкнуть покупку, и я могу захватить то, на что нажали данные, на которые пользователь нажал, как я могу это сделать? Я также хотел бы показать изображения продукта.Связать изображения объектов с моими значениями продуктов, хранящимися в DB

На данный момент это жестко запрограммировано.

%h1 <u>Fruit Basket</u> 

.row 
    .col-xs-10.col-sm-6.col-md-6.col-lg-4 
    .thumbnail 
     %img{:src => "assets/Garden3.jpg", :class => "FeedbackRegion"}/ 
     .caption 
     %h3.PriceTag RM 60 
     %button.btn.btn-primary.PurchaseBtn Purchase 
     %p <b><u>Fruits:</b></u> 
     %p Apple, Orange, Banana 
     %p <b><u>Flowers :</b></u> 
     %p Zebra, Chrysanthemum, Fern leafs 

    .col-xs-10.col-sm-6.col-md-6.col-lg-4 
    .thumbnail 
     %img{:src => "assets/Garden3.jpg", :class => "FeedbackRegion"}/ 
     .caption 
     %h3.PriceTag RM 80 
     %button.btn.btn-primary.PurchaseBtn Purchase 
     %p <b><u>Fruits:</b></u> 
     %p Apple, Orange, Banana 
     %p <b><u>Flowers :</b></u> 
     %p Zebra, Chrysanthemum, Fern leafs 

Как я могу удалить эти жестко закодированные коды и сделать его динамичным, как и в случае я добавляю еще один новый продукт, я могу получить свою информацию и его продукт IMAGE. Я думал о драгоценности PAPERCLIP, но, похоже, это не то, что мне нужно здесь? Поправьте меня, если я ошибаюсь.

ответ

0

Paperclip - это именно то, что вам нужно, но вам нужно начать с правильного использования шаблонов в первую очередь. Я предполагаю, что вы не поняли, что вам нужно перебрать ваши продукты, и если это не так, перейдите к шагу 2.

  1. Как вы отметили, вы жёстко каждый элемент продукта, а не только изображение , но вся покупка shebang. Не делай этого. Есть ли что-то в вашем контроллере, как @products = Product.all, а затем сделать что-то в вашем встроенном рубин в представлении как

@products.each do |p| image_tag "hi", p.image button_tag "other stuff" # etc.

Если вы не знакомы с тем, как использовать встроенный рубин в своих взглядах, чтобы загрузить ресурсы ваши контроллеры, очевидно, это первое; прочитайте документы, чтобы узнать, как это сделать самостоятельно.

  1. И теперь вам нужно будет хранить p.image в качестве столбца image в вашей базе данных нашей продукции. Paperclip сделает это за вас, и таким образом вы можете загружать изображения непосредственно из своей собственной базы данных на каждый ресурс, чтобы каждый раз загружался правильный образ.