Simple app - problems w/ routes

Hello,      I'm trying to get the backbone of a rails project up and running on localhost and also on a rails playground hosted site.

On localhost the app runs great and I can call my say/hello w/ either: http://localhost:3000/controller/say/hello or http://localhost:3000/say/hello,

but when I try this on my rails playground site I get this when I call the say/hello like this: http://erichermann.com/say/hello:

ActionView::MissingTemplate (Missing template say/hello.html.erb in view path /home/c73mr0ck/railsapp/app/views):     /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/template.rb:85:in `raise_missing_template_exception'     /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/template.rb:78:in `set_extension_and_file_name'     /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/template.rb:15:in `initialize'

And I get this when I call the say/hello like this: http://erichermann.com/controller/say/hello:

ActionController::RoutingError (No route matches "/controller/say/hello" with {:method=>:get}):     /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/routing/recognition_optimisation.rb:67:in `recognize_path'     /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/routing/route_set.rb:384:in `recognize'     /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_controller/dispatcher.rb:148:in `handle_request'   ect.

My controller code looks like this

[code] class SayController < ApplicationController   def hello   end end [/code]

And my routes.rb code looks like this: [code] ActionController::Routing::Routes.draw do |map|   map.connect ':controller/:action/:id'   map.connect ':controller/:action/:id.:format' end [/code]

One thing that could be causing a big problem is that on localhost, my rails version is: Rails 1.2.6

and on the Rails Playground hosting the version is: Rails 2.1.1

Any ideas how I can get this to work in both places?

Thanks, Clem

You can try freezing your version of Rails into your app.

rake rails:freeze:gems

http://www.softiesonrails.com/2008/1/3/freezing-your-rails-application

Now after a bit of tech support I now get this when I go to: http://erichermann.com/say/hello

Code: [code] Expected /home/c73mr0ck/railsapp/app/controllers/say_controller.rb to define SayController /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:249:in `load_missing_constant' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:452:in `const_missing' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:464:in `const_missing' [/code]

and I get this when I go to: http://erichermann.com/controller/say/hello

[code] no route found to match "/controller/say/hello" with {:method=>:get} /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/routing.rb:1325:in `recognize_path' /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/routing.rb:1315:in `recognize' /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/dispatcher.rb:40:in `dispatch' /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:168:in `process_request' [/code]

It all seemed so simple at first.... Edit/Delete Message

Wow there are just so many issues...

First I would highly recommend that you have the same rails version in both environments... Is there a reason why you want 1.2.6 on one machine and 2.1 on a different machine? These versions are very different and I'm sure you will find numerous of issues using the same app on 1.2 and 2.1...

Next the routing: In your routes you have

:controller/:action/:id

Which should be

localhost/say/hello (the localhost/controller/say/hello Not sure how that works in your local environment)

Did you change the rails version in your environment.rb file when you tested the code on the other env.?

Could you show your app/controllers/say_controller.rb here?

Freddy Andersen wrote:

Wow there are just so many issues...

First I would highly recommend that you have the same rails version in both environments... Is there a reason why you want 1.2.6 on one machine and 2.1 on a different machine? These versions are very different and I'm sure you will find numerous of issues using the same app on 1.2 and 2.1...

Next the routing: In your routes you have

:controller/:action/:id

Which should be

localhost/say/hello (the localhost/controller/say/hello Not sure how that works in your local environment)

Did you change the rails version in your environment.rb file when you tested the code on the other env.?

Could you show your app/controllers/say_controller.rb here?

Thanks for getting back to me on this.

In both my local and remote environment.rb file I have the rails version set ast this:

RAILS_GEM_VERSION = '1.2.6'

Unfortunately, for our main work project, we are running our app on a 1.2.6 rails version so it's safer to run all other apps on this version as well on localhost.

Here's my SayController code:

class SayController < ApplicationController   def hello   end end

Progress,     I finally just updated my local copy of ruby to 2.1.1. This got me up and running both locally and remotely.

Now I have a problem w/ my main project. In that project I have frozen rails and also, the environment.rb file sets the rails version to 1.2.6 with this:

RAILS_GEM_VERSION = '1.2.6'

The project works for the most part but I am experiencing problems w/ constants being defined and I'm getting errors like:

[code] LoadError in Fan_reach#index

Showing app/views/fan_reach/index.rhtml where line #79 raised:

Expected /Users/zenogill/rubydev/workspace/trunk/app/controllers/fan_reach_controller.rb to define FAN_REACH_CONTROLLER [/code]

Is there any way to check if this project is truly frozen to 1.2.6?