BTW, there is a typo in the code snippet where I am missing an open parenthesis. Adding it also causes the problem. Can anybody help, please?
Thanks On Jun 24, 4:16 pm, candor <[email protected]> wrote: > I got a very ugly workaround to work - I created a fresh project from > scratch (no git, no delayed job, no devise, nothing:-)) and added the > files in. Then I merged the non-active record models into one (non AR) > model. So, all calls are within the same class, and this works. > > The interesting thing is that the error occurs only where I have calls > from one non-AR model to another. When i call a non-AR model from an > AR model it works. > > I dont like this at all, since each of the non-AR models is a separate > model for a reason (at the least to share common code). > > Also, i checked out an old branch that had the same scenario, but > somewhat different code - i.e, it had non-AR models talking to each > other, but it had no ajax whatsoever (the problems I mentioned occured > in a project that has ajax views, rjs, etc.). That branch works fine > on the local machine, so this doesnt seem like an environment problem > on the machine... > > Any pointers would be very helpful, as I dont want to hang on to this > workaround for too long. > > Thanks > Anand > > On Jun 24, 12:15 pm, candor <[email protected]> wrote: > > > > > I have tried several things in the last few hours - including > > branching, ripping out all the files, and adding the code back one bit > > at a time. I am really out of choices now - one interesting thing - > > this error seems to occur only on the rails app codepath. When I call > > the same function from a unit test, it works fine. > > > I did suspect that this was due to some gem being out of sync, as > > several articles suggested, so I have removed everything except uri, > > open-uri and nokogiri. It still does repro. > > > Can someone please advise- at this point, any suggestion is useful. > > > Thanks > > Anand > > > On Jun 23, 9:20 pm, candor <[email protected]> wrote: > > > > Hi, > > > > I have a rails (2.3.5) project that has two models that are not > > > ActiveRecord based - one is called Wiki and another is called WebApi. > > > > I have been using this in the past, and it was working. However, > > > something I did is now causing ArgumentError to be raised when I call > > > a class method on WebApi from a Wiki class method. Here is the > > > relevant code: > > > > wiki.rb > > > > class Wiki > > > def self.get_url phrase='' > > > response = WebApi.format_and_call(WIKIPEDIA_URL, phrase) #error > > > occurs here > > > ... > > > end > > > ... > > > end > > > > web_api.rb > > > > class WebApi > > > def self.format_and_call url_format_string, phrase) > > > ... > > > end > > > end > > > > Here is the error I get: > > > > ArgumentError (wrong number of arguments (0 for 1)): > > > app/models/wiki.rb:7:in `get_url' > > > > On debugging, i notice that the error is coming from a const_missing > > > triggered by the attempt to access the WebApi object (it has nothing > > > to do with the Wikipedia Url constant, which is fine). Here is the > > > debug session: > > > > /(rdb:18) step > > > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ > > > gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb: > > > 91 > > > if [Object, Kernel].include?(self) || parent == self > > > (rdb:18) step > > > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ > > > gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/module/ > > > introspection.rb:31 > > > parent_name ? parent_name.constantize : Object > > > (rdb:18) step > > > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ > > > gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/module/ > > > introspection.rb:8 > > > unless defined? @parent_name > > > (rdb:18) next > > > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ > > > gems/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/module/ > > > introspection.rb:9 > > > @parent_name = name =~ /::[^:]+\Z/ ? $`.freeze : nil > > > (rdb:18) next > > > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ > > > gems/1.8/gems/actionpack-2.3.5/lib/action_controller/rescue.rb:162 > > > rescue_action(exception) > > > (rdb:18) exception > > > #<ArgumentError: wrong number of arguments (0 for 1)> > > > > I had initially named the WebApi class as Web, and thought the problem > > > may be due to a name collision, but I tried different names, and get > > > the same problem. > > > > I am quite confused, since this seems fairly simple code, and I don't > > > know where to look. > > > > I am using devise, and have delayed_job as well in the project, but > > > not really using it in this case. > > > > Thanks > > > Anand -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

