Problems creating emails using ActionMailer

Hi Guys,

I am having some issues with ActionMailer in a new project I am
working on.
I am getting the following message:
“Due to changes in ActionMailer you need to provide the mailer_name as
well as the template name”
That seemed simple enough, but it doesn’t work.

The problem I see is similar to this:
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/517ff90aa97a11a2/b89fef43b89c3e51?lnk=gst&q=render_message#b89fef43b89c3e51

I am also using Acts_As_Authenticated.
I have tried commenting out the rails_gem_version as suggested in the
above post.

When I create an email using
body “some text goes here”
I get the email fine.

So I tried to render the email using:
render “user_notifier/signup_notification”
I get the following error
can’t convert Symbol into String

trace log
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:498:in delete' c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:498:in render’
app/models/user_notifier.rb:7:in signup_notification' c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:410:in send
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:410:in create!' c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:403:in initialize’
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:352:in new' c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:352:in method_missing’
app/models/user_observer.rb:5:in after_create' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ observer.rb:157:in send’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
observer.rb:157:in update' c:/ruby/lib/ruby/1.8/observer.rb:185:in notify_observers’
c:/ruby/lib/ruby/1.8/observer.rb:184:in each' c:/ruby/lib/ruby/1.8/observer.rb:184:in notify_observers’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
callbacks.rb:338:in notify' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ callbacks.rb:302:in callback’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
callbacks.rb:227:in create_without_timestamps' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ timestamp.rb:29:in create’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
base.rb:2238:in create_or_update_without_callbacks' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ callbacks.rb:213:in create_or_update’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
base.rb:1972:in save_without_validation' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ validations.rb:934:in save_without_transactions’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
transactions.rb:108:in save' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ connection_adapters/abstract/database_statements.rb:66:in transaction’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
transactions.rb:80:in transaction' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:100:in transaction’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
transactions.rb:108:in save' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:120:in rollback_active_record_state!’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
transactions.rb:108:in save' app/controllers/user_controller.rb:22:in create’
vendor/plugins/streamlined/lib/streamlined/controller/callbacks.rb:
16:in execute' vendor/plugins/streamlined/lib/streamlined/controller/callbacks.rb: 20:in execute_before_create_and_yield’
app/controllers/user_controller.rb:22:in create' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:1158:in send’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
base.rb:1158:in perform_action_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ filters.rb:697:in call_filters’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
filters.rb:689:in perform_action_without_benchmark' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ benchmarking.rb:68:in perform_action_without_rescue’
c:/ruby/lib/ruby/1.8/benchmark.rb:293:in measure' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ benchmarking.rb:68:in perform_action_without_rescue’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
rescue.rb:199:in perform_action_without_caching' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ caching.rb:678:in perform_action’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
connection_adapters/abstract/query_cache.rb:33:in cache' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ query_cache.rb:8:in cache’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
caching.rb:677:in perform_action' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:524:in send’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
base.rb:524:in process_without_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ filters.rb:685:in process_without_session_management_support’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
session_management.rb:123:in process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:388:in process’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
dispatcher.rb:171:in handle_request' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ dispatcher.rb:115:in dispatch’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
dispatcher.rb:126:in dispatch_cgi' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ dispatcher.rb:9:in dispatch’
c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:
112:in handle_dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:78:in service’
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in run’
c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in start_thread' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in start’
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in start_thread' c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in start’
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in each' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in start’
c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in start' c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in start’
c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:62:in
dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/ webrick.rb:66 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in gem_original_require’
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/ dependencies.rb:496:in require’
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/
dependencies.rb:342:in new_constants_in' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/ dependencies.rb:496:in require’
c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in require’
script/server:3

***** end trace*******

If I try using
render :file=>“user_notifier/signup_notification”
I get the following error
can’t dup NilClass

********* trace log ***********
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/
template_error.rb:11:in dup' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ template_error.rb:11:in initialize’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/
base.rb:322:in new' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:322:in render_file’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/
base.rb:348:in render_without_streamlined' vendor/plugins/streamlined/lib/streamlined/view/render_methods.rb: 24:in render’
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:502:in render' app/models/user_notifier.rb:7:in signup_notification’
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:410:in __send__' c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:410:in create!’
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:403:in initialize' c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:352:in new’
c:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/
base.rb:352:in method_missing' app/models/user_observer.rb:5:in after_create’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
observer.rb:157:in send' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ observer.rb:157:in update’
c:/ruby/lib/ruby/1.8/observer.rb:185:in notify_observers' c:/ruby/lib/ruby/1.8/observer.rb:184:in each’
c:/ruby/lib/ruby/1.8/observer.rb:184:in notify_observers' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ callbacks.rb:338:in notify’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
callbacks.rb:302:in callback' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ callbacks.rb:227:in create_without_timestamps’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
timestamp.rb:29:in create' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ base.rb:2238:in create_or_update_without_callbacks’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
callbacks.rb:213:in create_or_update' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ base.rb:1972:in save_without_validation’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
validations.rb:934:in save_without_transactions' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:108:in save’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
connection_adapters/abstract/database_statements.rb:66:in
transaction' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:80:in transaction’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
transactions.rb:100:in transaction' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:108:in save’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
transactions.rb:120:in rollback_active_record_state!' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ transactions.rb:108:in save’
app/controllers/user_controller.rb:22:in create' vendor/plugins/streamlined/lib/streamlined/controller/callbacks.rb: 16:in execute’
vendor/plugins/streamlined/lib/streamlined/controller/callbacks.rb:
20:in execute_before_create_and_yield' app/controllers/user_controller.rb:22:in create’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
base.rb:1158:in send' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:1158:in perform_action_without_filters’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
filters.rb:697:in call_filters' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ filters.rb:689:in perform_action_without_benchmark’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
benchmarking.rb:68:in perform_action_without_rescue' c:/ruby/lib/ruby/1.8/benchmark.rb:293:in measure’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
benchmarking.rb:68:in perform_action_without_rescue' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ rescue.rb:199:in perform_action_without_caching’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
caching.rb:678:in perform_action' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/ connection_adapters/abstract/query_cache.rb:33:in cache’
c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/
query_cache.rb:8:in cache' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ caching.rb:677:in perform_action’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
base.rb:524:in send' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ base.rb:524:in process_without_filters’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
filters.rb:685:in process_without_session_management_support' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ session_management.rb:123:in process’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
base.rb:388:in process' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ dispatcher.rb:171:in handle_request’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
dispatcher.rb:115:in dispatch' c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/ dispatcher.rb:126:in dispatch_cgi’
c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/
dispatcher.rb:9:in dispatch' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb: 112:in handle_dispatch’
c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:78:in
service' c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in service’
c:/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in run' c:/ruby/lib/ruby/1.8/webrick/server.rb:173:in start_thread’
c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in start' c:/ruby/lib/ruby/1.8/webrick/server.rb:162:in start_thread’
c:/ruby/lib/ruby/1.8/webrick/server.rb:95:in start' c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in each’
c:/ruby/lib/ruby/1.8/webrick/server.rb:92:in start' c:/ruby/lib/ruby/1.8/webrick/server.rb:23:in start’
c:/ruby/lib/ruby/1.8/webrick/server.rb:82:in start' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/webrick_server.rb:62:in dispatch’
c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/servers/
webrick.rb:66
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_require' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in require’
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/
dependencies.rb:496:in require' c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/ dependencies.rb:342:in new_constants_in’
c:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/
dependencies.rb:496:in require' c:/ruby/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in gem_original_require’
c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require’
script/server:3

end trace*******

I’m not even sure where to look to solve this one. If any further
info is needed (code etc) please let me know. I didn’t want to make
the post too massive.

Your help is much appreciated.

~Ben

On 6 May 2008, at 01:17, BenL wrote:

The problem I see is similar to this:
So I tried to render the email using:
render “user_notifier/signup_notification”
I get the following error
can’t convert Symbol into String

render in ActionMailer isn’t quite like in a controller, you have to
pass in a hash of options. It’s also private so you shouldn’t be
calling really.
If you want to change the template rendered stick

template ‘some_other_template’

in your mailer method. if you need to change the directory in which it
looks then I believe you need to use mailer_name ie

class SomeMailer < ActionMailer::Base
mailer_name ‘foo_mailer’
def something
template ‘bar’
end
end
will render foo_mailer/bar

Fred

Thanks for the feedback Fred,

Just to clarify, I am not trying to render a template in a different
folder (everything is in the “as expected” folders). When I don’t
have a render specified, I get the “need to specify the mailer_name”
error.
So In Summary:
views/user_notifier/signup_notification.erb is the render file
models/user_notifier.rb is the ActionMailer class (Class UserNotifier)

In regards to your suggestions the code is now as follows (for the
mailer class):

class UserNotifier < ActionMailer::Base
mailer_name “user_notifier”
def signup_notification(user)
setup_email(user)
template “signup_notification”
end

end

Any Thoughts?
Thanks
~Ben

Hi All,

I tried setting the mailer_name using:
mailer_name=“user_notifier”

I now am back to the start - getting the error
“Due to changes in ActionMailer, you need to provide the mailer_name
along with the template name”

Any Ideas?
Thanks
~Ben

Gah! I forgot to paste the error message.

It is:
wrong number of arguments (1 for 0)

app/models/user_notifier.rb:5:in mailer_name' app/models/user_notifier.rb:5 app/models/user_observer.rb:5:inafter_create’
app/controllers/user_controller.rb:22:in create' app/controllers/user_controller.rb:22:increate’

~Ben

On 27 May 2008, at 05:27, Ethan wrote:

I am getting the same error. I tried to change the directory to
another invalid one… sure enough it raised an error saying the
template could not be found. But I cannot get past the "can’t dup
NilClass " error
In actionmailer render is private. Don’t call it (besides, you’re
rendering the default so it’s completely superfluous)

Fre

I am getting the same error. I tried to change the directory to
another invalid one… sure enough it raised an error saying the
template could not be found. But I cannot get past the "can’t dup
NilClass " error

here’s my model code

class BalUserNotify < ActionMailer::Base
mailer_name=‘bal_user_notify’
def change_password(bal_user, password, url=nil)
setup_email(bal_user)

# Email header info
@subject += "Changed password notification"

# Email body substitutions

body[:name] = "#{bal_user.firstname} #{bal_user.lastname}"
body[:login] = bal_user.login
body[:password] = password
body[:url] = url || BalUserSystem::CONFIG[:app_url].to_s
body[:app_name] = BalUserSystem::CONFIG[:app_name].to_s

render :file => 'bal_user_notify/change_password'

end

def setup_email(bal_user)
@recipients = “#{bal_user.email}”
@from = BalUserSystem::CONFIG[:email_from].to_s
@subject = "[#{BalUserSystem::CONFIG[:app_name]}] "
@sent_on = Time.now
@headers[‘Content-Type’] = “text/plain;
charset=#{BalUserSystem::CONFIG[:mail_charset]}; format=flowed”
end
end

has anybody successfully upgraded to rails 2.0 and succeeded with
converting the mailer models/views?

here’s the stack errors too

C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/
template_error.rb:11:in dup' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ template_error.rb:11:ininitialize’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/
base.rb:322:in new' C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/ base.rb:322:inrender_file’
C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_view/
base.rb:348:in render' C:/ruby/lib/ruby/gems/1.8/gems/actionmailer-2.0.2/lib/action_mailer/ base.rb:502:inrender’
app/models/bal_user_notify.rb:72:in `change_password’

On 27 May 2008, at 14:24, Ethan Otterlei wrote:

when i remove that line i am back to this line

your mailer_name = should be self.mailer_name = ‘foo’ or mailer_name
‘foo’ (mailer_name = ‘foo’ just creates a local variable)

If you are going to call render yourself, you need to give it a body
option (the set of assigns, eg :body => {:name => ‘Bob’}, or in your
case :body => body since you have built that.)

Fred

when i remove that line i am back to this line

Due to changes in ActionMailer, you need to provide the mailer_name
along with the template name.

render “user_mailer/signup”
render :file => “user_mailer/signup”

If you are rendering a subtemplate, you must now use controller-like
partial syntax:

render :partial => ‘signup’ # no mailer_name necessary

On Tue, May 27, 2008 at 4:25 AM, Frederick C. <

On 27 May 2008, at 15:09, Ethan Otterlei wrote:

Ok, i have changed the mailer_name = “foo” to self.mailer_name =
“bal_user_notify”

This isn’t making much sense - that error is only raised if there is
no / in the file you are trying to render (which there is). and if
everything is in the default place you shouldn’t need to do anything
(i’ve got several mailers like that - no setting mailer_name, no calls
to render). Might you have a plugin which is messing things up?

Fred

Ok, i have changed the mailer_name = “foo” to self.mailer_name =
“bal_user_notify”

and the class/function to
class BalUserNotify < ActionMailer::Base
self.mailer_name=‘bal_user_notify’

def change_password(bal_user, password, url=nil)
setup_email(bal_user)

# Email body substitutions

body[:name] = "#{bal_user.firstname} #{bal_user.lastname}"
body[:login] = bal_user.login
body[:password] = password
body[:url] = url || BalUserSystem::CONFIG[:app_url].to_s
body[:app_name] = BalUserSystem::CONFIG[:app_name].to_s

render :file => 'bal_user_notify/change_password', :body=>body

end
end

I am still getting this error.

Due to changes in ActionMailer, you need to provide the mailer_name
along with the template name.

render “user_mailer/signup”
render :file => “user_mailer/signup”

If you are rendering a subtemplate, you must now use controller-like
partial syntax:

render :partial => ‘signup’ # no mailer_name necessary

On Tue, May 27, 2008 at 8:44 AM, Frederick C. <

Hi Ethan,

I am also running the salted login generator.
Could you take me through what you did to remove the localization files?

Your help would be much appreciated.

~Ben

i found out that it was an issue with some localization functions that
were
a part of the SaltedLoginGenerator.

I removed the localization files from being included and hard-coded the
wording in the forms (since i am a 1-language site for now) and that
worked.

self.mailer_name=“foo” and then no render lines in the methods

thanks for your help!

On Tue, May 27, 2008 at 9:22 AM, Frederick C. <

Hi,

I got problem in extracting email header like

From: [email protected]
To: [email protected]
Subject: jjjjjjj

Actually i already fetch a the received mail using fectmail to a
ForActionMailer.txt file. But the text is contain plain text and
attachment. I already extracting out the attachment which is lmx file.
Currently i want to extract out the header from ForActionMailer.txt file
and append to the lmx file.

Is it possible to do so. Because in forum, people keep talking
aboutsending email but nevermention about receiving email.

Thanks

One thing when i had them set up was in my environment.rb file there
were 2
lines
#require ‘localization’
#Localization::load_localized_strings
as you can see i commented them out.

When you do this, your forms and logins will all work still but the
issue
now will be the localization strings in your forms will now show a
variable
name instead of the value. What I did was find all of these tags and
replace them.

form_helper
input_helper
message_helper
title_helper

basically doing a find of all *_helper in the .rhtml files and replacing
with the wording/text I preferred. Since i am an english language only
site
it wasnt a big deal to me to have them hard coded. Hopefully it wont be
too
tedious for you.

I hope that works for you. Let me know if you run into problems.

Ethan

Ethan Otterlei wrote:

One thing when i had them set up was in my environment.rb file there
were 2
lines
#require ‘localization’
#Localization::load_localized_strings
as you can see i commented them out.

When you do this, your forms and logins will all work still but the
issue
now will be the localization strings in your forms will now show a
variable
name instead of the value. What I did was find all of these tags and
replace them.

Thanks for pointing me in this direction Ethan!

Changing all my localizations to hard-coded strings would have been a
lot of work for me so I edited the lib/localization.rb and commented out
these lines:

ActionMailer::Base.module_eval <<-EOL
private
def render_message(method_name, body)
initialize_template_class(body).render_file(method_name +
“_#{CONFIG[:default_language]}”)
end
EOL

and that did the trick for me.

Ryan