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.
Clem R. (Guest)
on 2008-10-10 06: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
Erol F. (Guest)
on 2008-10-10 06:15
(Received via mailing list)
On Oct 10, 10:10 am, Clem R. <removed_email_address@domain.invalid>
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...
Clem R. (Guest)
on 2008-10-11 03: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
Freddy A. (Guest)
on 2008-10-11 04: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?
Clem R. (Guest)
on 2008-10-13 20:47
Freddy A. 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
Clem R. (Guest)
on 2008-10-21 19: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.