Używam Dragonfly do obsługi obrazów w aplikacji Rails 3.1. Zmagam się z przypisywaniem obrazów do modelu za pomocą adresu URL.Przypisywanie obrazu z adresu URL za pomocą Dragonfly
mam to dobrze działa w formie:
<%= 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 %>
stany dokumentacja Ważki:
Dragonfly dostarcza akcesor do przypisywania bezpośrednio z URL:
@album.cover_image_url = 'http://some.url/file.jpg'
Ale jeszcze kiedy spróbuj w mojej konsoli:
=> #<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>
Wygląda na to, że zwracam ciąg adresu URL, który próbuję przekazać Dragonfly, nie otwierając ani nie wyciągając obrazu, jak w formularzu.
Czy jest coś, czego mi brakuje, próbując przypisać obraz oparty na adresie URL? Wygląda na to, że powinno być całkiem proste, ale nie mogę sprawić, żeby cokolwiek działało w konsoli z rubinem.
Po pierwsze, dziękuję Znakowi za niesamowity klejnot. Po drugie, wow, czuję się głupio. Robiłem trochę pobierania i coś w stylu: picture.save if picture.image_uid # oczywiście to nie zadziała i nie przetestowałem wystarczająco dokładnie. Dzięki za tonę, działa świetnie. – Kombo