【问题标题】:Assigning Image from URL with Dragonfly使用 Dragonfly 从 URL 分配图像
【发布时间】:2012-01-06 04:48:17
【问题描述】:

我正在使用 Dragonfly 在 Rails 3.1 应用程序上处理图像。我正在努力通过 url 将图像分配给模型。

我在表单中可以正常工作:

<%= form_for [@word, @game, @picture], :html => {:multipart => true} do |f| %> 
  <%= f.hidden_field :retained_image %>
  <p>
    <%= f.label :image, "upload pic" %><br />
    <%= f.file_field :image %>
  </p>
  <p>
    <%= f.label :image_url, "or pic URL" %><br />
    <%= f.text_field :image_url %>
  </p>
  <p>
    <% if @picture.image_uid? %>
    <label>Remove Picture?</label>
    <%= f.check_box :remove_image %>
    <% end %>
  </p>
  <p><%= f.submit %></p>
<% end %>

蜻蜓的文档说明:

Dragonfly 提供了一个访问器,用于直接从 url 分配:

@album.cover_image_url = 'http://some.url/file.jpg'

但是当我在控制台中尝试时:

 => #<Picture id: nil, game_id: nil, user_id: nil, created_at: nil, updated_at: nil, image_uid: nil> 
ruby-1.9.2-p290 > picture.image_url = "http://i.imgur.com/QQiMz.jpg"
 => "http://i.imgur.com/QQiMz.jpg" 
ruby-1.9.2-p290 > picture
 => #<Picture id: nil, game_id: nil, user_id: nil, created_at: nil, updated_at: nil, image_uid: nil> 

它似乎正在返回我试图提供给 Dragonfly 的 URL 字符串,而不是像表单中那样打开和拉取图像。

在尝试根据 url 分配图像时,我是否遗漏了什么?看起来应该很简单,但我似乎无法在 ruby​​ 控制台中得到任何工作。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 paperclip dragonfly-gem


    【解决方案1】:

    你确定它不起作用吗?输入时会发生什么(从 url 分配后)

    picture.image
    

    picture.image.size
    

    例如?

    它在保存之前不会设置 image_uid,但你可以使用 picture.image。

    从 url 的实际获取是延迟发生的,即仅在需要时发生。例如,调用上面的“size”会触发它。

    【讨论】:

    • 首先,感谢马克的神奇宝石。其次,哇,我觉得自己很傻。我正在做一些获取和类似的事情:picture.save if picture.image_uid #obviously这不起作用,我没有进行足够彻底的测试。非常感谢,效果很好。
    【解决方案2】:

    我遇到了类似的问题,通过表单,:image_url 没有在保存时创建 :image_uid。在 Rails 控制台中一切正常。

    一旦我将它作为参数添加到我的控制器中,它就可以与 :image_url 一起使用。我以为 :image 会在保存时处理 :image_url ,但我必须明确传递 :image_url 作为保存参数。

    【讨论】:

    • 也许你应该添加一些代码来说明你的解决方案。
    • 他肯定是个时间旅行者,意味着在 rails 4 中将 :image_url 添加到 params.require(:my_model).permit(:foo, :bar, :image_url)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多