Forum: Ruby on Rails Simple app - problems w/ routes

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
8d4c3605bb2853f5088f8719d352f3cd?d=identicon&s=25 Clem Rock (clemrock)
on 2008-10-10 04:10
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
23e4fc3add5443f51e55663cfc245d24?d=identicon&s=25 Erol Fornoles (Guest)
on 2008-10-10 04:15
(Received via mailing list)
On Oct 10, 10:10 am, Clem Rock <rails-mailing-l...@andreas-s.net>
wrote:
> Posted viahttp://www.ruby-forum.com/.
You can try freezing your version of Rails into your app.

rake rails:freeze:gems

http://www.softiesonrails.com/2008/1/3/freezing-yo...
8d4c3605bb2853f5088f8719d352f3cd?d=identicon&s=25 Clem Rock (clemrock)
on 2008-10-11 01:20
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
4c438a80fc30661ad619ea177cf9cbd0?d=identicon&s=25 Freddy Andersen (Guest)
on 2008-10-11 02:02
(Received via mailing list)
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?
8d4c3605bb2853f5088f8719d352f3cd?d=identicon&s=25 Clem Rock (clemrock)
on 2008-10-13 18:47
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
8d4c3605bb2853f5088f8719d352f3cd?d=identicon&s=25 Clem Rock (clemrock)
on 2008-10-21 17:33
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?
This topic is locked and can not be replied to.