Controller Models

Here I Just started to learn Ruby on Rails! My issues is when reading the data using my controller pages.

I initiate my controller using this command

rails g controller schoolTypes

I then initiate my model has the following command

rails g model schoolType

Once this is done i then modify has follow the following pages

create_school_type class CreateSchoolTypes < ActiveRecord::Migration   def change     create_table :school_types do |t|       t.integer :schoolTypeID       t.string :name       t.description :text

      t.timestamps     end   end end did a rake db:migrate

Change the following page

school_types_controller.rb class SchoolTypesController < ApplicationController   def index     @schoolTypes = schooltype.all   end   def show   end   def new   end   def create   end   def update   end   def destroy   end   def edit   end end

index.html.erb <h1>School Types</h1> <% @schoolTypes.each do |schoolType|%> <%= schoolTypes.name %> <% end %> If I go to the following page http://localhost:3000/school_types I get the following errors undefined local variable or method `schooltype' for #<SchoolTypesController:0xa9cd600>

Any reason why?

your model should call 'SchoolType' and it's in file app/models/school_type.rb

then you should use @types = SchoolType.all (case sensitive)

tom

You don't need this as an id field will automatically be added. Also life will be simpler if you stick to the rails conventions for naming things (don't use camelCase), if you needed a school type id it should be called school_type_id.

I suggest you work right through some tutorials on RoR in order to get the basic principles. railstutorial.org is good and is free to use online (how many times have I typed that in the last year I wonder, my fingers type it without conscious brain involvement). Also have a look at the Rails Guides, starting with Getting Started, obviously.

Colin

Rails uses four naming conventions for throughout it’s code which need to be followed by the developer (you) for their code to fit with Rails. These involve selective use or singular and plural together with camelize and underscore. The simplest way to demonstrate the conventional use is to run: rails generate scaffold your_new_object name:string description:text size:integer Then look at the model/view/controller files for uses of the variants on your_new_object your_new_object your_new_objects YourNewObject YourNewObjectsIf you’re running on a unix system (any Linux or OSX) this command will find them all when run within your application directory: find . -name *.rb -exec grep your_new {} ; -a -exec grep YourNew {} ; -a -print

Rick

Thanks it works, it just get confusing with the singular and plurial