Permalink
Browse files

Treat ActionMailer template_root as a view path set internally to avo…

…id inheritance and dupping issues
  • Loading branch information...
1 parent 909a7f4 commit cb21db1a334e6ca2695d4e7183b1bdce204b9eb3 @josh josh committed Aug 1, 2008
Showing with 15 additions and 4 deletions.
  1. +15 −4 actionmailer/lib/action_mailer/base.rb
@@ -250,7 +250,7 @@ class Base
private_class_method :new #:nodoc:
- class_inheritable_accessor :template_root
+ class_inheritable_accessor :view_paths
cattr_accessor :logger
cattr_accessor :template_extensions
@@ -425,9 +425,12 @@ def register_template_extension(extension)
template_extensions << extension
end
+ def template_root
+ self.view_paths && self.view_paths.first
+ end
+
def template_root=(root)
- root = ActionView::PathSet::Path.new(root) if root.is_a?(String)
- write_inheritable_attribute(:template_root, root.load)
+ self.view_paths = ActionView::Base.process_view_paths(root)
end
end
@@ -541,12 +544,20 @@ def render(opts)
initialize_template_class(body).render(opts)
end
+ def template_root
+ self.class.template_root
+ end
+
+ def template_root=(root)
+ self.class.template_root = root
+ end
+
def template_path
"#{template_root}/#{mailer_name}"
end
def initialize_template_class(assigns)
- ActionView::Base.new(template_root, assigns, self)
+ ActionView::Base.new(view_paths, assigns, self)
end
def sort_parts(parts, order = [])

0 comments on commit cb21db1

Please sign in to comment.