2016-08-02 4 views
0

현재 드라이브에 파일이 업로드되는 레일스 프로젝트를 진행 중입니다. 드라이브에 업로드 된 파일을 가져올 수 있지만 파일 ID, 링크 등이 포함 된 응답을 얻는 방법을 알고 싶습니다. 목록을 사용해야합니까? 어떤 도움이라도 대단히 감사하겠습니다.Google Ruby API 클라이언트 파일 만들기 응답

def create 
    @essay = Essay.new(params.require(:essay).permit(:course_name)) 

    # Uploaded File 
    uploaded_io = params[:essay][:essay_draft] 

    # Save to a temporary folder 
    Tempfile.open(uploaded_io.original_filename, Rails.root.join('private', 'tmp')) do |f| 

    # Write using UTF-8 encoding 
    f.write(uploaded_io.read.force_encoding("UTF-8")) 

    # Close the file 
    f.close 

    # Gotta unlink to delete the temp file 
    f.unlink 
    end 

    # Set Metadata to be sent to Google Drive 
    file_metadata = { 
    name: uploaded_io.original_filename, 
    mime_type: 'application/vnd.google-apps.document' 
    } 

    # Call method which will upload the actual file to Drive 
    @drive.create_file(file_metadata, 
        fields: 'id', 
        upload_source: uploaded_io.path, 
        content_type: 'text/doc') 

if @essay.save 
    redirect_to @essay 
else 
    render :new 
end 
end 
+0

, 그때하지 업데이트와 문제의 답 부분에 답변을 게시 :) – KENdi

+1

내 나쁜. 앞서 가서 내 대답을 게시했습니다. – user2875165

답변

0

이것은 내 create 방법입니다.

def create 
@essay = Essay.new(params.require(:essay).permit(:course_name)) 

# Uploaded File 
uploaded_io = params[:essay][:essay_draft] 

# Set Metadata to be sent to Google Drive 
file_metadata = { 
    name: uploaded_io.original_filename, 
    mime_type: 'application/vnd.google-apps.document' 
} 

# Call method which will upload the actual file to Drive 
@file = @drive.create_file(file_metadata, 
        fields: 'id, web_view_link', 
        upload_source: uploaded_io.path, 
        content_type: 'text/doc') 

if @essay.save 
    render :show 
else 
    render :new 
end 
end 

나는 다음 내보기에 다음과 같이 넣을 수 있었다 : 당신은 이미이 문제를 해결하는 경우

<%= @file.id %> 
<%= @file.web_view_link %> 
관련 문제