Hello! In my application I''m trying to render a view from a class in /lib folder. I have found that it''s very similar to render a view from console. So, I have tried different methods:>> string = ActionView::Base.new.render( :inline => ''works'', :layout => false )=> "works">> string = ActionView::Base.new.render( :template => ''contr/index'', :layout => false )=> nil>> string = ActionView::Base.new.render( :controller => ''contr'', :action => ''index'', :layout => false )=> nil>> string = ActionView::Base.new.render( :file => ''contr/index'', :layout => false )ActionView::MissingTemplate: Missing template contr/index.html.erb in view path>> string = ActionController::Base.new.render( :template => ''contr/index'' )NoMethodError: protected method `render'' called for # So, nothing works except :inline templates. I saw a similar solution like ERB.new("Hello, <%= name %>").result(binding) - but it''s not suitable for me because I need to read a template and then insert it here. Could you suggest how can I render a template? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I haven''t tried this before, and my suggestion hasn''t been tested but with the last one, try this: string = ActionController::Base.new.send(:render, :template => ''cont/index'') AFAIK the send method can be used to call private and protected methods so this should work. Hope that helps! -- Josh http://iammrjoshua.com Konstantin wrote:> Hello! > > In my application I''m trying to render a view from a class in /lib > folder. I have found that it''s very similar to render a view from > console. So, I have tried different methods: >>> string = ActionView::Base.new.render( :inline => ''works'', :layout => false ) > => "works" >>> string = ActionView::Base.new.render( :template => ''contr/index'', :layout => false ) > => nil >>> string = ActionView::Base.new.render( :controller => ''contr'', :action => ''index'', :layout => false ) > => nil >>> string = ActionView::Base.new.render( :file => ''contr/index'', :layout => false ) > ActionView::MissingTemplate: Missing template contr/index.html.erb in > view path >>> string = ActionController::Base.new.render( :template => ''contr/index'' ) > NoMethodError: protected method `render'' called for # > > So, nothing works except :inline templates. I saw a similar solution > like ERB.new("Hello, <%= name %>").result(binding) - but it''s not > suitable for me because I need to read a template and then insert it > here. > > Could you suggest how can I render a template?-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> string = ActionController::Base.new.send(:render, :template => > ''cont/index'')Unfortunately this doesn''t work too :(>> ActionController::Base.new.send(:render, :template => ''cont/index'', :layout => false)NoMethodError: You have a nil object when you didn''t expect it! The error occurred while evaluating nil.render_file>> ActionController::Base.new.send(:render, :controller => ''cont'', :action => ''index'', :layout => false)NoMethodError: You have a nil object when you didn''t expect it! The error occurred while evaluating nil.render_file Do you have more suggestions? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---