質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.34%

actionmailerで画像を送りたいのですが、まだ送れない状態にあります。

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 429

score 41

今現在私は、actionmailerを使って、メールに画像を添付して送りたいと考えています。しかし、文字送信は可能ですが、画像は、うまく送れない状態にあります。もしわかる方がいらしたら、ご教授していただきたいです。

..File.read('./tmp/<@guider.Image>')の場合のエラー
イメージ説明
..File.read('./tmp/#{@guider.Image}')の場合のエラー
イメージ説明

class AdminMailer < ApplicationMailer
    default from: '##########@gmail.com'
    layout 'mailer'

    def new_guider_waiting_for_approval(guider)
      @guider = guider
    **  attachments['@guider.Image'] = ..File.read('./tmp/<@guider.Image>')  **
      mail(
          from: "<$$$$$$$$$$$$@gmail.com>",
          to: "<#{@guider.email}>", 
          subject: 'New User Awaiting Admin Approval'
          )
    end
end
 def configure_permitted_parameters
        devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :accepted, :name, :approved, :Image])
  end

registration

 <%= form_for(resource, as: resource_name, url: registration_path(resource_name), :html => {:class => "new_guider1"}) do |f| %>
    <%= devise_error_messages! %>

     <div class="field">
     <%= f.label :学生証 %><br /> 
     <%= f.file_field :Image %>
   </div>
 <% end %>
class AddImageToGuiders < ActiveRecord::Migration
  def change
    add_column :guiders, :Image, :text
  end
end
  <p><%= @guider.email %> has registered to join your site!</p>
  <p>An admin can approve this registration by visiting the website and editing the user</p>
  <p><%= @guider.Image %>学生証確認</p>
  <p><%= link_to "approve" , "http://localhost:3000/guiders/#{@guider.id}/approve" %></p>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

attachments['@guider.Image'] = ..File.read('./tmp/<@guider.Image>')


attachments['@guider.Image'] = ..File.read("./tmp/#{@guider.Image}")

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/10/10 16:57

    同じエラーが起きてしまい、抜け出せません。

    キャンセル

  • 2019/10/10 17:06

    ..File.read の .. がSyntaxErrorを起こしています。
    これはなんのために存在しているんでしょう。
    不要なら消せばいいだけですが...。

    キャンセル

  • 2019/10/10 17:18

    エラーはなくなりました。新たなにこのエラーが出てしまいました。
    No such file or directory @ rb_sysopen - ./tmp/#<ActionDispatch::Http::UploadedFile:0x007ff8c9f9eb28>
    サインアップの時に、載せた画像をメールで送りたいのですが、この送り方ではないのでしょうか?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る