ruby-on-rails - 使用 Dragonfly 从 URL 分配图像

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

我正在使用 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 的文档指出:

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​​ 控制台中使用任何东西。

最佳答案

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

picture.image

picture.image.size

例如?

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

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

关于ruby-on-rails - 使用 Dragonfly 从 URL 分配图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8753490/

相关文章:

javascript - 为什么所有的 CoffeeScript 文件总是同时执行 Rails

ruby-on-rails - Ruby on Rails - 无法将 "\x89"从 ASCII-8BIT 转换为 xxx/xxxx/xxxx 的 UTF-8

ruby-on-rails-3 - Elasticsearch Tire on Rails,返回该年龄段的所有男性,但也返回女性

ruby-on-rails - API 调用使用 Net::HTTP 抛出 Net::HTTPBadResponse 错误

ruby-on-rails - Rails 3 中的字符串连接

mysql - Rails - 使用 Or 子句编写 Where 查询

ruby-on-rails - ruby 的 `create!` 有什么方法可以一次制作多个对象吗?

ruby-on-rails - ActiveRecord 对象相等

ruby-on-rails - Admin::FaqsController:Class 的未定义方法 `t'

ruby-on-rails - 如何为 Rails 应用程序创建应用程序范围的 slug 路由?