Re: Problem with RailsDispatcher

Andre Nathan <[email protected]> Sat, 02 Dec 2006 22:40:13 -0200
Newsgroups gmane.comp.apache.mod-ruby
Message-ID <[email protected]>
Erm... OK, this was totally my fault :(

The thing is, my application used a model's class name to build some
strings, and I had to do that dynamically. However, in mod_ruby, it
seems everything becomes a subclass of
Apache::RailsDispatcher::CURRENT_MODULE, so where the application was
expecting "Foo", it was getting
"Apache::RailsDispatcher::CURRENT_MODULE::Foo". I fixed the code and
everything works now :)

Still, I had to apply the following change to rails-dispatcher.rb, on
line 101:

-if !/\Adispatch\.(cgi|fcgi|rb)\z/.match(r.filename) &&
+if !/dispatch\.(cgi|fcgi|rb)\z/.match(r.filename) &&

This is because r.filename contains the full path to dispatch.rb, and
the \A makes it not match.

Thanks Kim and Mat for the replies.

Best regards,
Andre


On Thu, 2006-11-30 at 15:54 -0200, Andre Nathan wrote:
> Hello
> 
> I'm having some trouble trying to configure mod_ruby 1.2.6 with
> RailsDispatcher. When I access my application, the browser shows the
> contents of dispatch.rb.
> 
> Here's the configuration I'm using:
> 
> 
> RubySafeLevel 0
> RubyRequire rubygems
> RubyRequire apache/rails-dispatcher
> RubyTransHandler Apache::RailsDispatcher.instance
> 
> <VirtualHost x.y.z.w>
>   ServerName myapp.foo.com
>   ServerAlias www.myapp.foo.com
> 
>   DocumentRoot /var/www/rails/myapp/public/
> 
>   <Directory /var/www/rails/myapp/public/>
>     Options ExecCGI FollowSymLinks IncludesNOEXEC Indexes
>     AllowOverride All
>     Order allow,deny
>     Allow from all
>   </Directory>
> 
>   SetHandler ruby-object
>   RubyHandler Apache::RailsDispatcher.instance
>   RubyOption rails_uri_root /
>   RubyOption rails_root /var/www/rails/myapp
>   RubyOption rails_env production
> 
>   SetOutputFilter DEFLATE
> </VirtualHost>
> 
> 
> I did some debugging in rails-dispatcher.rb, and in the #handler method,
> I noticed it's returning DECLINED at the beginning, because the
> r.filename contains the whole path to dispatch.rb, and thus doesn't
> match /\Adispatch\.(cgi|fcgi|rb)\z/. Anyone seen this problem too?
> Removing the "\A" from the regex makes it match, but then I get some
> strange errors (stack level too deep) which don't happen in CGI mode.
> 
> Anything obvious I could be missing?
> 
> Thanks
> Andre
> 
>