提交 f00cbf78 编写于 作者: J José Valim

Bring render_message back for 2.3 compatibility.

上级 a0374582
......@@ -143,12 +143,13 @@ module ActionMailer #:nodoc:
# subject "New account information"
# from "system@example.com"
# content_type "multipart/alternative"
# body :account => recipient
#
# part :content_type => "text/html",
# :body => render_message("signup-as-html", :account => recipient)
# :data => render_message("signup-as-html")
#
# part "text/plain" do |p|
# p.body = render_message("signup-as-plain", :account => recipient)
# p.body = render_message("signup-as-plain")
# p.content_transfer_encoding = "base64"
# end
# end
......@@ -453,11 +454,13 @@ def matches_dynamic_method?(method_name) #:nodoc:
# body, headers, etc.) can be set on it.
def part(params)
params = {:content_type => params} if String === params
if custom_headers = params.delete(:headers)
ActiveSupport::Deprecation.warn('Passing custom headers with :headers => {} is deprecated. ' <<
'Please just pass in custom headers directly.', caller[0,10])
params.merge!(custom_headers)
end
part = Mail::Part.new(params)
yield part if block_given?
@parts << part
......@@ -475,6 +478,20 @@ def attachment(params, &block)
part(params, &block)
end
# Allow you to set assigns for your template:
#
# body :greetings => "Hi"
#
# Will make @greetings available in the template to be rendered.
def body(object=nil)
returning(super) do # Run deprecation hooks
if object.is_a?(Hash)
@assigns_set = true
object.each { |k, v| instance_variable_set(:"@#{k}", v) }
end
end
end
# Instantiate a new mailer object. If +method_name+ is not +nil+, the mailer
# will be initialized according to the named method. If not, the mailer will
# remain uninitialized (useful when you only need to invoke the "receive"
......@@ -522,17 +539,20 @@ def deliver!(mail = @mail)
private
# Allow you to set assigns for your template:
# Render a message but does not set it as mail body. Useful for rendering
# data for part and attachments.
#
# body :greetings => "Hi"
# Examples:
#
# Will make @greetings available in the template to be rendered.
def body(object=nil)
super # Run deprecation hooks
if object.is_a?(Hash)
@assigns_set = true
object.each { |k, v| instance_variable_set(:"@#{k}", v) }
# render_message "special_message"
# render_message :template => "special_message"
# render_message :inline => "<%= 'Hi!' %>"
def render_message(object)
case object
when String
render_to_body(:template => object)
else
render_to_body(object)
end
end
......
......@@ -120,11 +120,11 @@ def multipart_with_mime_version(recipient)
content_type "multipart/alternative"
part "text/plain" do |p|
p.body = "blah"
p.body = render_message(:text => "blah")
end
part "text/html" do |p|
p.body = "<b>blah</b>"
p.body = render_message(:inline => "<%= content_tag(:b, 'blah') %>")
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册