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
School Types
<% @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
#
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
On Jul 9, 2012, at 21:13 , Jean-Sbastien D. wrote:
t.timestamps
@schoolTypes = schooltype.all
end
the following errors
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en-US.
–
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache
On 9 July 2012 20:13, Jean-Sbastien D. [email protected] wrote:
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
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
camelizeand
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
YourNewObjects
*If 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 plurials.
To be clear here how I declared my controller
rails g controller School_Types
and my model is as follow
rails g model School_Type
I am on a linux system. I also understand that the id field is
automatically integrated but when reading the file all I see is
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
I see the timestamps which allows me to see created and modified at, but
coming from php and mysql, if i dont have schoolTypeID where is the id??
is it not created into that file or is it created when running rake
db:migrate