has_many : photos (paperclip으로 처리되는 파일 첨부)라는 Book이라는 모델이 있습니다.JSON API를 통해 HTTP를 통한 첨부 파일 첨부
현재 libcurl을 사용하는 Paul Dix의 Typhoeus gem을 사용하여 JSON을 통해 내 Rails 앱과 통신 할 클라이언트를 구축 중입니다.
새 Book 개체를 게시하기는 쉽습니다. 나는이 쿼리에 사진을 추가 할 때
require 'rubygems'
require 'json'
require 'typhoeus'
class Remote
include Typhoeus
end
p Remote.post("http://localhost:3000/books.json",
{ :params =>
{ :book => { :title => "Hello There" }}})
내 문제는 시작 : 제목을 가진 새 책 기록을 만들려면 "안녕하세요"나는이 같은 간단한 작업을 수행 할 수있다.
Parameters: {"commit"=>"Submit", "action"=>"create", "controller"=>"books", "book"=>{"title"=>"Hello There", "photo_attributes"=>[{"image"=>#<File:/var/folders/1V/1V8Kw+LEHUCKonqJ-dp3oE+++TI/-Tmp-/RackMultipart20090917-3026-i6d6b9-0>}]}}
을 그리고 내 가정은 내가 Remote.post 호출에서 동일한 쿼리를 다시 찾고 있어요입니다 : 단순히 HTML 양식을 통해 첨부 파일을 게시하는 것은 쿼리를 다음과 같이 만듭니다.
해시 배열 내의 구문을 사용하면 가장 좋은 결과를 얻을 수 있다고 생각합니다. 나는 같은 될 것이라고, 일하는 것이 기대되었다 어떤 변화 할 시도했습니다 :
p Remote.post("http://localhost:3000/books.json",
{ :params =>
{ :book => { :title => "Hello There",
:photo_attributes => [{ :image => "/path/to/image/here" }] }}})
을하지만 내가 해시로 만들기 위해 노력하고있어 문자열로 연결하는 것, 그리고 반환 (=> ""해시 이미지에 상관없이 난에 무엇을) :
NoMethodError (undefined method `stringify_keys!' for "image/path/to/image/here":String):
하지만이 아닌 경우 여기 내 구문에 어떤 문제가 있는지 파악 너무 많은 시간을 낭비하고 싶지 않아 어쨌든 일하게 될텐데, 그래서 나는 내가 여기 올 것이라고 생각했다.
내 질문 : 올바른 방향에 있습니까? 이상한 연결 문자열 대신 해시 배열을 게시하려면이 구문을 지우면 이미지를 Book 개체로 전달하기에 충분합니까?
아니면 내가 잘못 접근하고 있습니까?
이것은 매우 흥미로운 점은이 그러나이 클라이언트는 브라우저 기반 응용 프로그램이 아니므로 안타깝게도 iframe은 문제가되지 않습니다. – btw