0

Ok Rails 전문가, 여기에 좋은 조언이 필요합니다.레일 - DB에 임의의 매개 변수 집합을 저장하는 방법에 대한 제안

내가 SendGrid의 구문 분석 API를 사용하려고 해요 : - 이메일에 포함 된 첨부 파일 수

  • 첨부 파일 : http://sendgrid.com/documentation/ApiParse

    여기에 큰 문제는 SendGrid이 (가) API 사양에 다음과 같은 작업을 수행한다는 것이다.

  • 첨부 파일 1, 첨부 파일 2, ... 첨부 파일 N - 파일 업로드 이름입니다. 여기서 N은 첨부 파일의 총 개수입니다. 예를 들어 첨부 파일 수가 0이면 첨부 파일이 없습니다. 첨부 파일 수가 3이면 attachment1, attachment2 및 attachment3 매개 변수는 파일 업로드를 갖습니다. TNEF 파일 (winmail.dat)이 추출되고 첨부 파일이 게시됩니다.

DB에 응답을 저장해야하므로 모든 작업을 지연시킬 수 있습니다.

이렇게 지연된 작업이 응답을 사용할 수 있도록 저장하는 가장 좋은 방법은 무엇입니까? 어떻게 든 응답을 Mail.new() 객체로 바꿀 수 있습니까? 아니면 다른 아이디어? 첨부 파일의 무작위 X는 데이터베이스에 100 개의 필드를 추가하지 않고도 우아하게 해결하는 것을 어렵게 만듭니다.

감사

답변

2

첨부 파일을 직렬화하고 단일 필드에 저장하려고합니다. 나는 Mail 객체를 재 작성하는 것이 당신을 많이 도와 줄 것이라고 생각하지 않습니다.

는 여기로 이동 : http://api.rubyonrails.org/classes/ActiveRecord/Base.html 을이 제목을 찾아 "저장 배열, 해시, 및 텍스트 열에서 다른 비 맵핑 가능한 객체"

+0

감사합니다. 다음과 같이 설정하십시오 : preferences => { "background"=> "black", "display"=> large} ... sendgrid가 보내는 모든 X # (1 - 100) 첨부 파일을 직렬화하려면 어떻게합니까? – AnApprentice

+0

그래서 다시 뭔가를 얻으면 :'files = [: attachment1 => 'file.jpg', : attachment2 => 'file2.png']'당신은 ActiveRecord처럼 자동으로 직렬화 된 배열에 모든 파일을 저장할 수 있습니다. 'MyObject.attachments = files' 그리고 당신이 그것을 저장할 때 그것은 하나의 필드에 저장되도록 배열을 직렬화 할 것입니다. 그런 다음 그들을 빼낼 때 네이티브 Ruby 배열을 돌려줍니다. – bobbywilson0

+0

감사합니다. 바비가 의미가 있습니다. N 레코드로 고급 수준의 직렬화를 수행하는 방법을 알았습니다. 이후 그것은 별도의 질문입니다. 나는 이것을 받아 들일 것이고 새로운 실을 열 것이다. – AnApprentice

0

나는 다음과 같은 제안 잘 이해하는 경우 : 당신은 필드에 따라 쿼리가 필요하지 않은 경우, 당신은 데이터베이스 테이블에 하나 개의 필드에 YAML 또는 JSON과 같은 속성 해시를 저장 chould

.

+0

감사합니다. 하지만 필드를 쿼리하고 메일 개체를 사용하여이를 수행 할 수 있어야합니다. Mail.subject, Mail.to, etc ... 생각 ...? 또한 첨부 파일은 무엇입니까? – AnApprentice

관련 문제