Ruby on rails 可以使用ActiveAdmin以便管理员用户可以编辑邮件程序模板吗?

Ruby on rails 可以使用ActiveAdmin以便管理员用户可以编辑邮件程序模板吗?,ruby-on-rails,activeadmin,Ruby On Rails,Activeadmin,我的客户想知道我是否可以在ActiveAdmin中设置一个页面,允许他们更改消息(编辑)注册邮件查看模板 它将位于何处的示例 有什么办法可以做到这一点吗?我环顾了四周,但我真的很难找到任何与这个主题有点类似的东西。是的,你可以做到。我将告诉您创建一个更好的方法来处理来自活动管理仪表板的所有此类电子邮件模板的方法 1-通过运行rails g model email\u template 2-现在将以下代码添加到db/migrate/timestamp\u create\u email\u tem

我的客户想知道我是否可以在ActiveAdmin中设置一个页面,允许他们更改消息(编辑)注册邮件查看模板

它将位于何处的示例


有什么办法可以做到这一点吗?我环顾了四周,但我真的很难找到任何与这个主题有点类似的东西。

是的,你可以做到。我将告诉您创建一个更好的方法来处理来自活动管理仪表板的所有此类电子邮件模板的方法

1-通过运行
rails g model email\u template

2-现在将以下代码添加到db/migrate/timestamp\u create\u email\u templates.rb

def change
  create_table :email_templates do |t|
    t.string    :name
    t.text      :subject
    t.text      :body
  t.timestamps
  end
  add_index :email_templates, [:name], unique: true
end
3-然后运行
rake db:migrate

4-然后运行
rails generate active_admin:resource EmailTemplate
将电子邮件模板添加到active admin仪表板

5-将以下代码粘贴到admin/email_template.rb

ActiveAdmin.register EmailTemplate do

  actions :all, except: [:destroy]

  permit_params :name, :subject, :body#, :image

  form do |f|
    f.inputs 'Details' do
      f.input :name
      f.input :subject
      f.input :body
    end
    f.actions
  end
end
6-然后从活动管理仪表板导航到电子邮件模板,以创建一个新的注册邮件模板,假设命名为欢迎\u电子邮件

7-从活动管理仪表板添加模板的主题和主体。 注意-电子邮件模板的主题可以添加为普通HTML,如以下屏幕截图所示:

8-我假设您的应用程序中已经有可用的邮件功能,并且在mailers文件夹下也有任何邮件程序,如user_mailer.rb。如果没有,那么请先添加一个邮件,它在将来也会对你有很大帮助。您可以按照此操作在mailers中获得任何帮助

9-添加一个函数,该函数将在调用欢迎电子邮件时调用,以在mailers/User\u mailer.rb下发送任何用户,如下所示:

class UserMailer < ApplicationMailer

before_action { @user = params[:user] }

  def welcome_email
    email   = EmailTemplate.find_by_name("welcome_email")
    mail(:to => @user.email,
            :subject => email.subject, 
            :body => ERB.new(email.body).result_with_hash(user: @user), 
            content_type: "text/html"
            )
  end
end
def create
  super do |user|
    if user.save
      UserMailer.with(user: user).welcome_email.deliver
    end
  end
end
如上所述,您可以添加多个电子邮件模板,并从Active Admin Dashboard处理所有这些模板,并通过在邮件程序中添加一个函数,在需要时随时调用它们