【问题标题】:How to Upload Multiple Image in Rails 4 Using Paperclip如何使用 Paperclip 在 Rails 4 中上传多个图像
【发布时间】:2015-12-05 20:27:03
【问题描述】:

我正在尝试为我的 Markets 控制器创建一个图片库,我可以使用回形针上传单个图片。我在谷歌上搜索,但没有找到任何解决方案。如何使用回形针上传多张图片并以图库的形式显示。有什么办法吗。请告诉我答案。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 paperclip image-gallery


    【解决方案1】:

    Here is the article,详细解释了如何实现。 下面是一些代码sn-ps。

    型号:

    # app/models/market.rb
    class Market < ActiveRecord::Base
      has_many :pictures, dependent: :destroy
    end
    
    # app/models/picture.rb
    class Picture < ActiveRecord::Base
      belongs_to :market
    
      has_attached_file :image,
        path: ":rails_root/public/images/:id/:filename",
        url: "/images/:id/:filename"
    
      do_not_validate_attachment_file_type :image
    end
    

    查看:

    # app/views/markets/_form.html.erb
    <%= form_for @market, html: { class: "form-horizontal", multipart: true } do |f| %>
      <div class="control-group">
        <%= f.label :pictures, class: "control-label" %>
        <div class="controls">
          <%= file_field_tag "images[]", type: :file, multiple: true %>
        </div>
      </div>
    
      <div class="form-actions">
        <%= f.submit nil, class: "btn btn-primary" %>
        <%= link_to t(".cancel", default: t("helpers.links.cancel")),
                    galleries_path, class: "btn btn-mini" %>
      </div>
    <% end %>
    

    控制器:

    # app/controllers/markets_controller.rb
    def create
      @market = Market.new(market_params)
    
      respond_to do |format|
        if @market.save
    
          if params[:images]
            params[:images].each { |image|
              @market.pictures.create(image: image)
            }
          end
    
          format.html { redirect_to @market, notice: "Market was successfully created." }
          format.json { render json: @market, status: :created, location: @market }
        else
          format.html { render action: "new" }
          format.json { render json: @market.errors, status: :unprocessable_entity }
        end
      end
    end
    

    【讨论】:

    • 如何添加验证?
    • @liroy 我认为是 adding validationsPicture 模型。
    • 嘿,我无法保存图像,请您解释一下如何显示该图像。它没有保存在 public/image 下
    • Paperclip::AdapterRegistry::NoHandlerError in HousesController#create 做什么?
    • @Nischaynamdev google 错误以查看可能的解决方案? :) 我以前没有遇到过这个错误,所以不幸的是不会告诉你该怎么做。
    猜你喜欢
    • 1970-01-01
    • 2014-10-20
    • 2014-01-18
    • 1970-01-01
    • 2015-03-10
    • 2016-07-30
    • 2019-08-22
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多