0

ユーザーがモバイル デバイスからプロフィール写真をアップロードするために Cloudmailin サービスを利用していますCloudmailin は、HTTP POST 形式の電子メールを当社のサイトに転送します。投稿をフォーマットする方法は4 つあります。添付データを簡単に取得できると考えたので、Multipart/form-data Hash 電子メール メッセージ形式を使用しています。私のコントローラーには次のものがあります。

require 'mail'
skip_before_filter :verify_authenticity_token

def create
  ...
      attachment = params[:attachments].first
      file = StringIO.new(attachment.decoded)
  ...
end

エラーメッセージ:

NoMethodError (undefined method `decoded' for #<Array:0xb5060c24>)

代わりに mms2r を使用してみようと思ったのですが、gem をインストールしようとして、次のようにしました。

"Error installing mms2r: ERROR: Failed to build gem native extension."

mms2r の問題を解決するよりも、mms2r の問題なしでやってみたいと思います。

ご協力いただきありがとうございます。

4

1 に答える 1

1

渡された添付ファイルは、キー 0 で始まるハッシュです。次のようなものを使用して、それぞれを反復処理する必要があります。

params[:attachments].each do |key,value|
  # do something with value
  logger.info value.inspect
end

これにより、一時ファイルにアクセスできるようになります。マルチパート形式の場合、base64 エンコーディングはありません。添付ファイルはそのまま送信され、ラックがマルチパート ファイルを抽出するため、ファイル経由でアクセスできます。

于 2012-06-13T23:00:05.730 に答える