I am new to RoR, but I have been struggling with a mysterious error for days. I am using a standard installation approach on a clean ubuntu system
I created a very simple application, just reading from a mysql table called dogs. The application was totally generated with scaffold.
rails server -p 3001 #Starts server
When I run, I get the error "No route matches controller" http://localhost:3001/dogs
If I remove all the link_to cells, the application runs and returns data.
If I put back just one line " <td><%= link_to 'Show', dog %></td>",
I still get the error complaining about the ":action=>"destroy" route.
== scaffold ==
rails g scaffold dog dog_id:integer color:string gender:string dog_name:string --skip-migration
===========Generated Source Code=============
<% @dogs.each do |dog| %> <tr> <td><%= dog.dog_id %></td> <td><%= dog.color %></td> <td><%= dog.gender %></td> <td><%= dog.dog_name %></td> <td><%= link_to 'Show', dog %></td> <td><%= link_to 'Edit', edit_dog_path(dog) %></td> <td><%= link_to 'Destroy', dog, :confirm => 'Are you sure?', :method => :delete %></td> </tr> <% end %>
========= ERROR =========== ## No route matches controller ############ Showing /home/ruby/hub2/app/views/dogs/index.html.erb where line #20 raised: No route matches {:controller=>"dogs", :action=>"destroy", :id=>#<Dog dog_id: 1, color: "Golden", gender: "Female", dog_name: "Daisy">}
Extracted source (around line #20):
17: <td><%= dog.color %></td> 18: <td><%= dog.gender %></td> 19: <td><%= dog.dog_name %></td> 20: <td><%= link_to 'Show', dog %></td> 21: <td><%= link_to 'Edit', edit_dog_path(dog) %></td> 22: <td><%= link_to 'Destroy', dog, :confirm => 'Are you sure?', :method => :delete %></td> 23: </tr>
========== routes.rb ============== Hub2::Application.routes.draw do resources :dogs end
========= rake routes ============ root@ubu-bob:/home/ruby/hub2# rake routes (in /home/ruby/hub2) dogs GET /dogs(.:format) {:controller=>"dogs", :action=>"index"} dogs POST /dogs(.:format) {:controller=>"dogs", :action=>"create"} new_dog GET /dogs/new(.:format) {:controller=>"dogs", :action=>"new"} edit_dog GET /dogs/:id/edit(.:format) {:controller=>"dogs", :action=>"edit"} dog GET /dogs/:id(.:format) {:controller=>"dogs", :action=>"show"} dog PUT /dogs/:id(.:format) {:controller=>"dogs", :action=>"update"} dog DELETE /dogs/:id(.:format) {:controller=>"dogs", :action=>"destroy"}
=== Installation === I followed these instructions on a brand new and fully updated version of ubuntu 10.04
http://castilho.biz/blog/2010/05/08/how-to-install-ruby-on-rails-on-ubuntu-10-04-lucid-lynx/ How to install Ruby on Rails on Ubuntu 10.04 Lucid Lynx Follow these steps to have a fresh installation of Ruby on Rails in Ubuntu 10.04:
sudo su apt-get -y install build-essential apt-get -y install ruby rdoc libopenssl-ruby wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz tar zxvf rubygems-1.3.7.tgz cd rubygems-1.3.7 ruby setup.rb ln -s /usr/bin/gem1.8 /usr/local/bin/gem gem install rails ;# (takes awhile with no output.. )
#Installing MySQL gem:
apt-get -y install ruby-dev libmysql-ruby libmysqlclient-dev gem install mysql