5

나는 Rails 3.1 앱에서 이미지를 처리 ​​할 때 Dragonfly를 사용하고 있습니다. 나는 URL을 통해 모델에 이미지를 할당하는 데 어려움을 겪고있다.잠자리가있는 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 %> 

잠자리의 문서 상태 :

잠자리가 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> 

잠자리에주고 자하는 URL의 문자열을 반환하는 것처럼 보입니다. 이미지를 열지 않고 양식에서 가져 오는 것과 같습니다.

URL을 기반으로 이미지를 할당하려고 할 때 누락 된 것이 있습니까? 그것은 꽤 똑바로해야하지만 그것은 루비 콘솔에서 작동하도록 아무것도 얻을 수없는 것 같습니다.

답변

8

확실하지 않습니까? 당신은 (URL에서 할당 후)

picture.image 

또는 예를 들어

picture.image.size 

을 입력하면 어떻게됩니까?

저장 될 때까지 image_uid가 설정되지 않지만 사진과 함께 재생할 수있는 picture.image가 있습니다.

URL에서 실제 가져 오기가 지연 될 때 즉 필요한 경우에만 발생합니다. 위의 '크기'를 호출하면 해당 크기가 트리거됩니다.

+0

먼저 놀라운 보석에 대한 마크. 둘째, 나는 바보가됩니까? 나는 페칭을하고 뭔가를하고 있었다 : picture.save if picture.image_uid # 분명히 이것이 작동하지 않을 것이고 충분히 철저히 테스트하지 않았다. 고마워, 좋은 작품. – Kombo

2

양식을 통해 : image_url이 (가) save : image_uid를 작성하지 않고 비슷한 문제가 발생했습니다. 모든 것이 레일 콘솔에서 잘 작동했습니다.

내 컨트롤러의 매개 변수로 추가하면 : image_url과 함께 작동합니다. 내 생각 : 이미지 처리 할 것이다 : image_url 저장하지만 대신 명시 적으로 전달할 : image_url 저장 매개 변수로.

+0

해결책을 설명하는 코드를 추가해야 할 수도 있습니다. –

+0

그는 확실히 시간 여행자이며, 레일즈 4에 image_url을'params.require (: my_model) .permit (: foo, : bar, : image_url)'에 추가하는 것을 의미합니다. –