[英]rails 4 devise use email preview gem
I want to email preview for devise confirmation mail etc through rails email preview gem and it integrate with comfortable mexican sofa cms. 我想通过rails电子邮件预览gem通过电子邮件预览来设计确认邮件,它与舒适的墨西哥沙发cms集成在一起。 I need edit mail content through that cms. 我需要通过该cms编辑邮件内容。 Rails Email Preview not integrated with comfortable mexican sofa cms for me and I will try my level but not work for me.how do it work i'm not clear about it.Somebody help me Rails Email Preview没有与我舒适的墨西哥沙发cms集成在一起,我会尝试我的水平但不为我工作。如何工作我不清楚,有人帮助我
Here My Gemfile 这是我的Gemfile
gem 'rails_email_preview', '~> 0.2.28'
gem 'comfortable_mexican_sofa', '~> 1.12.0'
Here My config/initializers/rails_email_preview.rb file 这是我的config / initializers / rails_email_preview.rb文件
require 'rails_email_preview'
#= REP hooks and config
# RailsEmailPreview.setup do |config|
# # hook before rendering preview:
# config.before_render do |message, preview_class_name, mailer_action|
# # apply premailer-rails:
# Premailer::Rails::Hook.delivering_email(message)
# # or actionmailer-inline-css:
# ActionMailer::InlineCssHook.delivering_email(message)
# end
#
# # do not show Send Email button
# config.enable_send_email = false
#
# # You can specify a controller for RailsEmailPreview::ApplicationController to inherit from:
# config.parent_controller = 'Admin::ApplicationController' # default: '::ApplicationController'
#end
#= REP + Comfortable Mexican Sofa integration
#
# # enable comfortable_mexican_sofa integration:
require 'rails_email_preview/integrations/comfortable_mexica_sofa'
Rails.application.config.to_prepare do
# Render REP inside a custom layout (set to 'application' to use app layout, default is REP's own layout)
# This will also make application routes accessible from within REP:
# RailsEmailPreview.layout = 'admin'
# Set UI locale to something other than :en
# RailsEmailPreview.locale = :de
# Auto-load preview classes from:
RailsEmailPreview.preview_classes = Dir[Rails.root.join 'app/mailer_previews/*_preview.rb'].map { |p|
File.basename(p, '.rb').camelize
}
end
Here My app/mailer_previews/devise_mailer_preview.rb file 这是我的app / mailer_previews / devise_mailer_preview.rb文件
class DeviseMailerPreview < ActionMailer::Preview
def confirmation_instructions
user = User.first
DeviseMailer.confirmation_instructions(user)
end
end
Here My app/mailers/devise_mailer.rb file 这是我的app / mailers / devise_mailer.rb文件
class DeviseMailer < Devise::Mailer
default from: "from@example.com"
def confirmation_instructions(user)
@user = user
mail to: user.email
end
end
Here My app/views/devise/confirmations/confirmation_instructions.html.erb 这是我的app / views / devise / confirmations / confirmation_instructions.html.erb
<%= @user.name %>,
<p>You can confirm your account email through the link below:</p>
<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @token) %></p>
Here My devise.rb 这是我的devise.rb
config.mailer = "DeviseMailer"
Here my routes file 这是我的路线文件
mount RailsEmailPreview::Engine, at: '/emails'
comfy_route :cms_admin, :path => '/admin'
Thanks Your Help! 谢谢您的帮助!
It's a Rails bug. 这是Rails的错误。 Fixed in Rails master. 已在Rails主站中修复。 For now you just need to redefine mailer preview routes inside your app. 现在,您只需要在应用程序内重新定义邮件预览路径。 See this for more details: 请参阅此以获取更多详细信息:
https://github.com/comfy/comfortable-mexican-sofa/issues/553 https://github.com/comfy/comfortable-mexican-sofa/issues/553
https://github.com/rails/rails/blob/b47d8dea25aa4c1b0d02603adc00cf63f2163f21/actionmailer/lib/action_mailer/railtie.rb#L44 https://github.com/rails/rails/blob/b47d8dea25aa4c1b0d02603adc00cf63f2163f21/actionmailer/lib/action_mailer/railtie.rb#L44
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.