Ruby on rails 在Rails中呈现带有小胡子的邮件模板

Ruby on rails 在Rails中呈现带有小胡子的邮件模板,ruby-on-rails,ruby,ruby-on-rails-4,actionmailer,mustache,Ruby On Rails,Ruby,Ruby On Rails 4,Actionmailer,Mustache,我正在尝试使用 我有一个标准的邮件操作,它只向用户发送电子邮件。我已重命名模板路径,以防止在为与此邮件程序操作关联的模板创建隐藏视图类时发生命名冲突。这一过程概述于 Rails似乎正在app/views中搜索模板(或视图类,我不确定是哪个) 如何才能正确地渲染局部 我使用的是Rails 4.0.3、Ruby 2.1.1和stache 1.0.3 我尝试过的事情 使用stache gem的包装类功能,而不是为邮件程序指定模板路径,并在视图类的名称间隔前加前缀 我两个都试过了: # app/view

我正在尝试使用

我有一个标准的邮件操作,它只向用户发送电子邮件。我已重命名模板路径,以防止在为与此邮件程序操作关联的模板创建隐藏视图类时发生命名冲突。这一过程概述于

Rails似乎正在
app/views
中搜索模板(或视图类,我不确定是哪个)

如何才能正确地渲染局部

我使用的是Rails 4.0.3、Ruby 2.1.1和stache 1.0.3

我尝试过的事情

使用stache gem的包装类功能,而不是为邮件程序指定
模板路径
,并在视图类的名称间隔前加前缀

我两个都试过了:

# app/views/registration_mailer/bailed.rb
module Wrapper
  module RegistrationMailer
    class Bailed < ::Stache::Mustache::View
    end
  end
end

这只是给了我一个不同的“未找到”错误。

下面是一个将Stache与邮件程序一起使用的示例:

# config / initializers / stache.rb
Stache.configure do |c|
  c.template_base_path = Rails.root.join('app', 'views')
  c.wrapper_module_name = "Wrapper"

  c.use :mustache
end

# app / mailers / registration_mailer.rb
class RegistrationMailer < ActionMailer::Base
  default template_path: 'mailers/registration_mailer'

  def bailed(user)
   @user = user
   mail to: user.email
 end
end

# app / models / wrapper / mailers / regisration_mailer / bailed.rb
module Wrapper
  module Mailers
    module RegistrationMailer
      class Bailed < ::Stache::Mustache::View
        def continue_registration_link
          link_to "Continue registration by connecting your Twitter account", 
            connect_registrations_url
        end

        def signature
          @view.render "shared/mailer/sig"
        end
      end
    end
  end
end
#config/initializers/stache.rb
Stache.do | c|
c、 template\u base\u path=Rails.root.join('app','views')
c、 包装器\u模块\u name=“包装器”
c、 用途:胡须
结束
#app/mailers/registration\u mailer.rb
类RegistrationMailer
我认为您缺少的是需要同时配置包装器模块和模板路径

# app/templates/er_registration_mailer/bailed.html.mustache
<p>Hi there!</p>

<p>I noticed you recently started the signup process for my app but didn't complete it.</p>

<p>{{{continue_registration_link}}}</p>

{{{signature}}}
Failure/Error: RegistrationMailer.bailed(user).deliver
  ActionView::Template::Error:
    Missing partial shared/mailer/sig with {:locale=>[:en], :formats=>[:html, :text, :js, :css, :ics, :csv, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :slim, :arb, :rb, :mustache]}. Searched in:
      * "/Users/davidtuite/dev/shareshaper/app/app/views"
      * "/Users/davidtuite/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/bundler/gems/active_admin-6f04ed5cec24/app/views"
      * "/Users/davidtuite/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/devise-3.2.2/app/views"
      * "/Users/davidtuite/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/foundation-rails-5.0.3.1/app/views"
      * "/Users/davidtuite/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/kaminari-0.15.1/app/views"
  # ./app/views/er_registration_mailer/bailed.rb:17:in `signature'
# app/views/registration_mailer/bailed.rb
module Wrapper
  module RegistrationMailer
    class Bailed < ::Stache::Mustache::View
    end
  end
end
# app/views/wrapper/registration_mailer/bailed.rb
module Wrapper
  module RegistrationMailer
    class Bailed < ::Stache::Mustache::View
    end
  end
end
# app/templates/er_registration_mailer/bailed.html.mustache
<!-- HTML as in above code sample -->

{{{>shared/mailer/sig}}}
# config / initializers / stache.rb
Stache.configure do |c|
  c.template_base_path = Rails.root.join('app', 'views')
  c.wrapper_module_name = "Wrapper"

  c.use :mustache
end

# app / mailers / registration_mailer.rb
class RegistrationMailer < ActionMailer::Base
  default template_path: 'mailers/registration_mailer'

  def bailed(user)
   @user = user
   mail to: user.email
 end
end

# app / models / wrapper / mailers / regisration_mailer / bailed.rb
module Wrapper
  module Mailers
    module RegistrationMailer
      class Bailed < ::Stache::Mustache::View
        def continue_registration_link
          link_to "Continue registration by connecting your Twitter account", 
            connect_registrations_url
        end

        def signature
          @view.render "shared/mailer/sig"
        end
      end
    end
  end
end