【问题标题】:Link assets images to my Products values stored in DB将资产图像链接到存储在数据库中的我的产品值
【发布时间】:2016-12-14 17:28:16
【问题描述】:

您好,假设我有固定数量的产品(例如 5 个产品)。在我的 HTML 表单中,如果我想使用一个表单来显示所有产品,以便用户可以点击购买,并且我可以捕获用户点击的点击数据是什么,我该怎么做?我也想展示产品的图片。

到目前为止,它是硬编码的。

%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 gem,但似乎不是我需要的?如果我错了,请纠正我。

【问题讨论】:

    标签: database ruby-on-rails-4 paperclip


    【解决方案1】:

    Paperclip 正是您所需要的,但您需要首先正确使用模板。我假设您没有意识到您需要迭代您的产品,如果不是这样,请跳到第 2 步。

    1. 正如您所指出的,您对每个产品项目进行了硬编码,不仅是图像,而且是整个购买 shebang。不要那样做。在你的控制器中做一些事情,比如@products = Product.all,然后在你的嵌入式 ruby​​ 中做一些事情,比如

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

    如果您不熟悉如何在视图中使用嵌入式 ruby​​ 从控制器加载资源,显然这是第一个;阅读文档以了解如何自行完成。

    1. 现在您必须将p.image 作为image 列存储在产品数据库中。 Paperclip 将为您执行此操作,这样您就可以直接从您自己的数据库中为每个资源加载图像,这样每次都会加载正确的图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多