Rails 5 Paperclip从URL保存图像

时间:2018-02-25 17:28:22

标签: ruby-on-rails ruby-on-rails-5 paperclip

如果这是一个简单的问题,我是一个Rails新手,所以道歉,但我一直无法找到明确的答案。我尝试允许用户通过上传文件或使用Paperclip gem输入图片的网址将图片附加到帖子。

文件上传工作正常,但使用网址方式我收到'没有定义处理程序' 错误

link.rb

require "open-uri"

class Link < ApplicationRecord
    attr_reader :image_from_url
    has_attached_file :image, styles: { medium: "600x600>", thumb: "100x100#" }, default_url: "/images/:style/missing.png"
    validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/

    def image_from_url=(url)
        self.image = URI.parse(url)
        @image_from_url = url
    end
end

_form.html.erb

<%= form_with(model: link, local: true) do |form| %>
    <%= form.file_field :image, id: :link_image %>
    <%= form.text_field :image, id: :link_image_url %>
<% end %>

links_controller.erb

def create
    @link = current_user.links.build(link_params)
end

def link_params
  params.require(:link).permit(:title, :url, :description, :image, :slug)
end

我必须承认,我并不完全理解在流程的每个阶段发生的事情,这就是我努力调试它的原因。

1 个答案:

答案 0 :(得分:-1)

我推荐使用paperclip的carrierwave gem。更容易从链接解析。

Carrierwave