Hi I have in MailSending class def self.send_mail_to_all_contacts(problem) description=split_name_and_email_array(joined_array,problem) end private def split_name_and_email_array(name_email_array,pb) code...... split_value="somevaluehere" end But here I get error as undefined method `split_name_and_email_array'' for MailSending:Class So Can''t I call a private method from a class method Thanks in advance Sijo -- 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 -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Sep-11 08:41 UTC
Re: Can''t I call a private method from a self.method
On Sep 11, 9:34 am, Sijo Kg <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Hi > I have in MailSending class > def self.send_mail_to_all_contacts(problem) > description=split_name_and_email_array(joined_array,problem) > end > > private > def split_name_and_email_array(name_email_array,pb) > code...... > split_value="somevaluehere" > end > > But here I get error as > undefined method `split_name_and_email_array'' for MailSending:Class > So Can''t I call a private method from a class method >You can''t but that isn''t the problem here. You can''t call an instance method without an instance of the class (which you don''t have). Fred> Thanks in advance > Sijo > -- > Posted viahttp://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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Thanks for the reply..I can call the first like MailSendingProblem.send_mail_to_all_contacts(@problem) upto that it is Ok But it does not call the private method So need I to make the above private method public or any other solution? Sijo -- 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 -~----------~----~----~----~------~----~------~--~---
Frederick Cheung
2008-Sep-11 09:41 UTC
Re: Can''t I call a private method from a self.method
On 11 Sep 2008, at 09:56, Sijo Kg wrote:> > Hi > Thanks for the reply..I can call the first like > MailSendingProblem.send_mail_to_all_contacts(@problem) upto that it > is > Ok But it does not call the private method So need I to make the above > private method public or any other solution?Like I said you can''t call an instance method without an instance. It''s like trying to say ActiveRecord::Base.reload - it doesn''t make any sense - you can only call that on an instance. Fred --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Frederick Cheung wrote:> Like I said you can''t call an instance method without an instance. > It''s like trying to say ActiveRecord::Base.reload - it doesn''t make > any sense - you can only call that on an instance. > > FredOk, so would it be like: self.method() or obj=MailSending.new() and then obj.method()? Also in the book I''m reading at the moment says that to use "before filter" to intercept to the actions in the controller we have to put the particular method in ApplicationController(the parent class of all our controllers) and that we have to restrict it as any public methods here are exposed to end users as actions and hence asks to make it private: ===============================================================================class ApplicationController < ActionController::Base private def authorize ......... end end =============================================================================== and in the corresponding controllers call it with: ===============================================================================class SomeController < ApplicationController before_filter :authorize end =============================================================================== Problems: Though I have called the method accordingly in the corresponding controllers, as soon as I make the authorize method private a warning icon appears at the side as "unused private method authorize" and underlines all the words with curly yellow lines (by the way I''m using aptana studio). But, however, everything seems to work fine. So, how can I get rid of those warning and ugly underlines. Thanks.. -- 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 -~----------~----~----~----~------~----~------~--~---
Christian Rishøj
2008-Sep-12 02:12 UTC
Re: Can''t I call a private method from a self.method
You need to declare your "split_name_and_email_array" method as a class method: def self.split_name_and_email_array(name_email_array,pb) # ... end Christian On Thu, Sep 11, 2008 at 10:34 AM, Sijo Kg <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > Hi > I have in MailSending class > def self.send_mail_to_all_contacts(problem) > description=split_name_and_email_array(joined_array,problem) > end > > private > def split_name_and_email_array(name_email_array,pb) > code...... > split_value="somevaluehere" > end > > But here I get error as > undefined method `split_name_and_email_array'' for MailSending:Class > So Can''t I call a private method from a class method > > Thanks in advance > Sijo > -- > 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 -~----------~----~----~----~------~----~------~--~---