I seriously cant understand why this is so hard… I have some experience with other mvc frameworks but always heard rails was the easiest to code in…. right now I cant even get to my controller methods if i want to.
I used scaffold to creat ‘student’ which automatically created for me the controller, model and views for basic CRUD.. but now I just want to add a method “helloworld” to my controller and when i go to
http://localhost:3000/students/helloworld
I get a
Couldn’t find Student with ID=helloworld
error.
what am I missing?.. I know its got to do with routes and the REST thing but I still cant figure out then how else am I supposed to use my own methods… do I have to edit my routes.rb file everytime I create a new method?.. please help
Routes for models in Rails are divided into 2 groups. Ones that act on a single objects (think edit, update, delete) and ones that don’t have a single object to act on (new, index). If you want to create your own method that doesn’t take an object ID you need to add a route config for that method in your routes file. The methods are either member or collection methods. Member methods URLs look like /model/id/method_name. Collection methods look like what you want (/model/method_name). Here is an example for your students model (routes.rb)
Note: You can just remove the :member => … from the config and only have collection if you have no member methods to define.