2015-11-03 70 views
2

在我的控制文件:如何通过设计发送电子邮件附件?

class RegistrationsController < Devise::RegistrationsController 
    layout "devise" 
    before_action :check_url, only: [:new] 

    def create 
    attachments["logo.png"] = File.read("#{Rails.root}/public/assets/images/logo.png") 
    super 
    end 
end 

在我看来文件:

<%= image_tag attachments['logo.png'].url %> 

后比我得到这个错误,

未定义的局部变量或方法'附件的

+0

我要报名邮件发送到用户并在这我想在邮件模板中添加logo图片。 –

+0

@pulkit Agarwal这不适用于我:( –

+0

张贴您的控制器代码在这里 –

回答

2

覆盖设计cr eate方法并不是很好的解决方案。你可以为此写回调。

class User < ActiveRecord::Base 
    # ... 

    after_create :send_admin_mail 
    def send_admin_mail 
    UserMailer.send_new_user_message(self).deliver 
    end 

    # ... 
end 

和您的用户邮件应该像

class UserMailer < ApplicationMailer 
    default from: '[email protected]' 

    def send_new_user_message(user) 
    @user = user 
    @url = 'http://example.com/login' 
    attachments.inline['image.jpg'] = File.read('/path/to/image.jpg') 
    mail(to: @user.email, subject: 'Welcome to My Awesome Site') 
    end 
end 
+0

我实现了这一点,但我不能看到邮件模板中的图像 –

+0

你能分享你git repo或gist,所以我可以检查哪里出了问题? –

+1

这对我来说工作得很好。我在我的Gmail帐户中被封锁了图片附件。日Thnx –

相关问题