Hi everyone, Has anybody used ActionMailer outside rails? I have googled and found some things, but I can not seem to get it to work for a stand-alone app. The problem is setting the template_root. If I dont'' set it, ActionMailer can not find my mail templates. If I try and set it, I get an uninitialized constant ActionView::Base::ActionController when I: ActionMailer::Base.template_root = ''some-path'' I''m putting action_mailer, action_pack, rack, and active_support in a vendor subdir of the app, so I can ship it with the app and adding to the LOAD_PATH at the beggining og the app. Appreciate any help here!!!!!! Here is the full error: /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ active_support/dependencies.rb:105:in `rescue in const_missing'': uninitialized constant ActionView::Base::ActionController (NameError) from /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ active_support/dependencies.rb:94:in `const_missing'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/base.rb:191:in `cache_template_loading?'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/paths.rb:5:in `type_cast'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/paths.rb:16:in `block in initialize'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/paths.rb:16:in `map!'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/paths.rb:16:in `initialize'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/base.rb:205:in `new'' from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ action_view/base.rb:205:in `process_view_paths'' from /home/gditric/sandbox/ffl/vendor/actionmailer-2.3.4/lib/ action_mailer/base.rb:437:in `template_root='' from ./ffl.rb:66:in `<main>''
We''re in the process of reworking AM to work with the new AbstractController. One design goal is making the path to standalone use more clear. For your case, try require "action_controller" before trying to do any AM stuff :) -- Yehuda 2009/10/6 GregD <gditrick@fuse.net>> > Hi everyone, > > Has anybody used ActionMailer outside rails? I have googled and found > some things, but I can not seem to get it to work for a stand-alone > app. > > The problem is setting the template_root. If I dont'' set it, > ActionMailer can not find my mail templates. If I try and set it, I > get an uninitialized constant ActionView::Base::ActionController when > I: > > ActionMailer::Base.template_root = ''some-path'' > > I''m putting action_mailer, action_pack, rack, and active_support in a > vendor subdir of the app, so I can ship it with the app and adding to > the LOAD_PATH at the beggining og the app. > > Appreciate any help here!!!!!! > > > Here is the full error: > > /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > active_support/dependencies.rb:105:in `rescue in const_missing'': > uninitialized constant ActionView::Base::ActionController (NameError) > from /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > active_support/dependencies.rb:94:in `const_missing'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/base.rb:191:in `cache_template_loading?'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/paths.rb:5:in `type_cast'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/paths.rb:16:in `block in initialize'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/paths.rb:16:in `map!'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/paths.rb:16:in `initialize'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/base.rb:205:in `new'' > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > action_view/base.rb:205:in `process_view_paths'' > from /home/gditric/sandbox/ffl/vendor/actionmailer-2.3.4/lib/ > action_mailer/base.rb:437:in `template_root='' > from ./ffl.rb:66:in `<main>'' > > > >-- Yehuda Katz Developer | Engine Yard (ph) 718.877.1325 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks! I can now set the template_root with ActionMailer::Base.template_root=. However, it still is not finding my template. It looks like an Array is not getting initialized. I not using rails framework, since this is not a rails app. So, I did not do the script/generate mailer Mailer to generate my Mailer class. I just manually created it in my app''s framework. Is there something in rails or the generate script that is not getting set because I''m not in rails. Do I need to create a controller class? I don''t remember having one with my limited rails development work a few years ago. I thought it was decoupled from ActionController. Here is my class. When I call Mailer.deliver_results(team, week) looping a teams collections, I get the new error. require ''action_controller'' class Mailer < ActionMailer::Base def results(team, week) recipients team.email from "commissioner@ffl.net" subject "TPL: #{week.description} Results" body :team => team, :week => week end end /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/actionmailer-2.3.4/ lib/action_mailer/base.rb:582:in `candidate_for_layout?'': undefined method `find_template'' for []:Array (NoMethodError) from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionpack-2.3.4/lib/action_controller/layout.rb:240:in `pick_layout'' from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionmailer-2.3.4/lib/action_mailer/base.rb:566:in `render'' from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionmailer-2.3.4/lib/action_mailer/base.rb:553:in `render_message'' from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionmailer-2.3.4/lib/action_mailer/base.rb:493:in `create!'' from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionmailer-2.3.4/lib/action_mailer/base.rb:452:in `initialize'' from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionmailer-2.3.4/lib/action_mailer/base.rb:395:in `new'' from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ actionmailer-2.3.4/lib/action_mailer/base.rb:395:in `method_missing'' from ./ffl.rb:104:in `block in <main>'' from ./ffl.rb:103:in `each'' from ./ffl.rb:103:in `<main>'' Thanks again. I''m getting further...and still experimenting. ;) GregD On Oct 6, 9:21 pm, Yehuda Katz <wyc...@gmail.com> wrote:> We''re in the process of reworking AM to work with the new > AbstractController. One design goal is making the path to standalone use > more clear. For your case, try require "action_controller" before trying to > do any AM stuff :) > -- Yehuda > > 2009/10/6 GregD <gditr...@fuse.net> > > > > > > > > > Hi everyone, > > > Has anybody used ActionMailer outside rails? I have googled and found > > some things, but I can not seem to get it to work for a stand-alone > > app. > > > The problem is setting the template_root. If I dont'' set it, > > ActionMailer can not find my mail templates. If I try and set it, I > > get an uninitialized constant ActionView::Base::ActionController when > > I: > > > ActionMailer::Base.template_root = ''some-path'' > > > I''m putting action_mailer, action_pack, rack, and active_support in a > > vendor subdir of the app, so I can ship it with the app and adding to > > the LOAD_PATH at the beggining og the app. > > > Appreciate any help here!!!!!! > > > Here is the full error: > > > /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > > active_support/dependencies.rb:105:in `rescue in const_missing'': > > uninitialized constant ActionView::Base::ActionController (NameError) > > from /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > > active_support/dependencies.rb:94:in `const_missing'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/base.rb:191:in `cache_template_loading?'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/paths.rb:5:in `type_cast'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/paths.rb:16:in `block in initialize'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/paths.rb:16:in `map!'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/paths.rb:16:in `initialize'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/base.rb:205:in `new'' > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > action_view/base.rb:205:in `process_view_paths'' > > from /home/gditric/sandbox/ffl/vendor/actionmailer-2.3.4/lib/ > > action_mailer/base.rb:437:in `template_root='' > > from ./ffl.rb:66:in `<main>'' > > -- > Yehuda Katz > Developer | Engine Yard > (ph) 718.877.1325- Hide quoted text - > > - Show quoted text -
Okay, I tried to add a controller but don''t know how to outside of rails. A controller for a batch process should not be necessary, right? Googling for answers and no one mentions using a controller and most post are over 1-2 years old. Should I try a lower version of ActionMailer, ActonPack, etc.? Or, do I just neet to initialize something? If someone could point me to some documentation that would be great. Later, GregD On Oct 7, 11:02 am, GregD <gditr...@fuse.net> wrote:> Thanks! I can now set the template_root with > ActionMailer::Base.template_root=. However, it still is not finding > my template. It looks like an Array is not getting initialized. > > I not using rails framework, since this is not a rails app. So, I did > not do the script/generate mailer Mailer to generate my Mailer class. > I just manually created it in my app''s framework. Is there something > in rails or the generate script that is not getting set because I''m > not in rails. Do I need to create a controller class? I don''t > remember having one with my limited rails development work a few years > ago. I thought it was decoupled from ActionController. > > Here is my class. When I call Mailer.deliver_results(team, week) > looping a teams collections, I get the new error. > require ''action_controller'' > > class Mailer < ActionMailer::Base > def results(team, week) > recipients team.email > from "commissio...@ffl.net" > subject "TPL: #{week.description} Results" > body :team => team, :week => week > end > end > > /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/actionmailer-2.3.4/ > lib/action_mailer/base.rb:582:in `candidate_for_layout?'': undefined > method `find_template'' for []:Array (NoMethodError) > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionpack-2.3.4/lib/action_controller/layout.rb:240:in `pick_layout'' > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionmailer-2.3.4/lib/action_mailer/base.rb:566:in `render'' > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionmailer-2.3.4/lib/action_mailer/base.rb:553:in `render_message'' > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionmailer-2.3.4/lib/action_mailer/base.rb:493:in `create!'' > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionmailer-2.3.4/lib/action_mailer/base.rb:452:in `initialize'' > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionmailer-2.3.4/lib/action_mailer/base.rb:395:in `new'' > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > actionmailer-2.3.4/lib/action_mailer/base.rb:395:in `method_missing'' > from ./ffl.rb:104:in `block in <main>'' > from ./ffl.rb:103:in `each'' > from ./ffl.rb:103:in `<main>'' > > Thanks again. I''m getting further...and still experimenting. ;) > > GregD > > On Oct 6, 9:21 pm, Yehuda Katz <wyc...@gmail.com> wrote: > > > > > We''re in the process of reworking AM to work with the new > > AbstractController. One design goal is making the path to standalone use > > more clear. For your case, try require "action_controller" before trying to > > do any AM stuff :) > > -- Yehuda > > > 2009/10/6 GregD <gditr...@fuse.net> > > > > Hi everyone, > > > > Has anybody used ActionMailer outside rails? I have googled and found > > > some things, but I can not seem to get it to work for a stand-alone > > > app. > > > > The problem is setting the template_root. If I dont'' set it, > > > ActionMailer can not find my mail templates. If I try and set it, I > > > get an uninitialized constant ActionView::Base::ActionController when > > > I: > > > > ActionMailer::Base.template_root = ''some-path'' > > > > I''m putting action_mailer, action_pack, rack, and active_support in a > > > vendor subdir of the app, so I can ship it with the app and adding to > > > the LOAD_PATH at the beggining og the app. > > > > Appreciate any help here!!!!!! > > > > Here is the full error: > > > > /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > > > active_support/dependencies.rb:105:in `rescue in const_missing'': > > > uninitialized constant ActionView::Base::ActionController (NameError) > > > from /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > > > active_support/dependencies.rb:94:in `const_missing'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/base.rb:191:in `cache_template_loading?'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/paths.rb:5:in `type_cast'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/paths.rb:16:in `block in initialize'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/paths.rb:16:in `map!'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/paths.rb:16:in `initialize'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/base.rb:205:in `new'' > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > action_view/base.rb:205:in `process_view_paths'' > > > from /home/gditric/sandbox/ffl/vendor/actionmailer-2.3.4/lib/ > > > action_mailer/base.rb:437:in `template_root='' > > > from ./ffl.rb:66:in `<main>'' > > > -- > > Yehuda Katz > > Developer | Engine Yard > > (ph) 718.877.1325- Hide quoted text - > > > - Show quoted text -- Hide quoted text - > > - Show quoted text -
Okay, after trial and error I found my user error and all I have to say is duh...to the dumbazz (me)! I was loading my classes (models) and then setting the template_root. Make sure you set ActionMailer::Base.template_root= BEFORE you load YourMailer class. Also, I did a "require ''action_mailer''" instead of "require ''actionmailer''" <= this was causing me to require the action_controller and I did not have to do that once I fixed...oh boy...duh again. Hard to see the forest thru the trees sometimes. It is now finding my templates and such and I will see how much further I get and then maybe put a sampe out some place on: "Howto: Use ActionMailer outside rails" All, I can say is sorry for my stupidity. --GregD On Oct 7, 12:48 pm, GregD <gditr...@fuse.net> wrote:> Okay, I tried to add a controller but don''t know how to outside of > rails. A controller for a batch process should not be necessary, > right? Googling for answers and no one mentions using a controller > and most post are over 1-2 years old. Should I try a lower version of > ActionMailer, ActonPack, etc.? Or, do I just neet to initialize > something? If someone could point me to some documentation that would > be great. > > Later, > > GregD > > On Oct 7, 11:02 am, GregD <gditr...@fuse.net> wrote: > > > > > Thanks! I can now set the template_root with > > ActionMailer::Base.template_root=. However, it still is not finding > > my template. It looks like an Array is not getting initialized. > > > I not using rails framework, since this is not a rails app. So, I did > > not do the script/generate mailer Mailer to generate my Mailer class. > > I just manually created it in my app''s framework. Is there something > > in rails or the generate script that is not getting set because I''m > > not in rails. Do I need to create a controller class? I don''t > > remember having one with my limited rails development work a few years > > ago. I thought it was decoupled from ActionController. > > > Here is my class. When I call Mailer.deliver_results(team, week) > > looping a teams collections, I get the new error. > > require ''action_controller'' > > > class Mailer < ActionMailer::Base > > def results(team, week) > > recipients team.email > > from "commissio...@ffl.net" > > subject "TPL: #{week.description} Results" > > body :team => team, :week => week > > end > > end > > > /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/actionmailer-2.3.4/ > > lib/action_mailer/base.rb:582:in `candidate_for_layout?'': undefined > > method `find_template'' for []:Array (NoMethodError) > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionpack-2.3.4/lib/action_controller/layout.rb:240:in `pick_layout'' > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionmailer-2.3.4/lib/action_mailer/base.rb:566:in `render'' > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionmailer-2.3.4/lib/action_mailer/base.rb:553:in `render_message'' > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionmailer-2.3.4/lib/action_mailer/base.rb:493:in `create!'' > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionmailer-2.3.4/lib/action_mailer/base.rb:452:in `initialize'' > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionmailer-2.3.4/lib/action_mailer/base.rb:395:in `new'' > > from /home/gditric/sandbox/ffl/vendor/gems/1.9.1/gems/ > > actionmailer-2.3.4/lib/action_mailer/base.rb:395:in `method_missing'' > > from ./ffl.rb:104:in `block in <main>'' > > from ./ffl.rb:103:in `each'' > > from ./ffl.rb:103:in `<main>'' > > > Thanks again. I''m getting further...and still experimenting. ;) > > > GregD > > > On Oct 6, 9:21 pm, Yehuda Katz <wyc...@gmail.com> wrote: > > > > We''re in the process of reworking AM to work with the new > > > AbstractController. One design goal is making the path to standalone use > > > more clear. For your case, try require "action_controller" before trying to > > > do any AM stuff :) > > > -- Yehuda > > > > 2009/10/6 GregD <gditr...@fuse.net> > > > > > Hi everyone, > > > > > Has anybody used ActionMailer outside rails? I have googled and found > > > > some things, but I can not seem to get it to work for a stand-alone > > > > app. > > > > > The problem is setting the template_root. If I dont'' set it, > > > > ActionMailer can not find my mail templates. If I try and set it, I > > > > get an uninitialized constant ActionView::Base::ActionController when > > > > I: > > > > > ActionMailer::Base.template_root = ''some-path'' > > > > > I''m putting action_mailer, action_pack, rack, and active_support in a > > > > vendor subdir of the app, so I can ship it with the app and adding to > > > > the LOAD_PATH at the beggining og the app. > > > > > Appreciate any help here!!!!!! > > > > > Here is the full error: > > > > > /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > > > > active_support/dependencies.rb:105:in `rescue in const_missing'': > > > > uninitialized constant ActionView::Base::ActionController (NameError) > > > > from /home/gditric/sandbox/ffl/vendor/activesupport-2.3.4/lib/ > > > > active_support/dependencies.rb:94:in `const_missing'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/base.rb:191:in `cache_template_loading?'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/paths.rb:5:in `type_cast'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/paths.rb:16:in `block in initialize'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/paths.rb:16:in `map!'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/paths.rb:16:in `initialize'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/base.rb:205:in `new'' > > > > from /home/gditric/sandbox/ffl/vendor/actionpack-2.3.4/lib/ > > > > action_view/base.rb:205:in `process_view_paths'' > > > > from /home/gditric/sandbox/ffl/vendor/actionmailer-2.3.4/lib/ > > > > action_mailer/base.rb:437:in `template_root='' > > > > from ./ffl.rb:66:in `<main>'' > > > > -- > > > Yehuda Katz > > > Developer | Engine Yard > > > (ph) 718.877.1325- Hide quoted text - > > > > - Show quoted text -- Hide quoted text - > > > - Show quoted text -- Hide quoted text - > > - Show quoted text -