Forum: Ruby on Rails A Question about Model and Database?

Posted by ACK (Guest)
on 2012-09-07 23:09
(Received via mailing list)
hi i m new to rails i need to know the => which is the best way to 
create
Database table in Rails?

1) *rails generate model User name:string email:string*
this will create a migration file with something like this

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name # *see here name column is already made becoz we 
have passed a parameters*
      t.string :email # *same as above*

      t.timestamps
    end
  endend


this is one method

2) *rails generate model Page*
this will create a empty migration file something like this

class CreatePages < ActiveRecord::Migration
  def change
    create_table :users do |t|
      ===>>  *now we can add here like t.string "name" to create column 
manually* ========>>>>>
      t.timestamps
    end
  endend


So which is the good way to do above things example 1 or example 2?
Please tell.

and if i have to write a drop_table method in migration, can i write in 
the
way which i showed below

class CreateSubjects < ActiveRecord::Migration
  def change
    create_table :subjects do |t|
      t.string "name"

      t.timestamps
    end
  end

  def self.down
    drop_table :subjects
  end
end

So again same question *which is the good way to do above things example 
1
( model with parameter ) or example 2 ( model without parameter )?*
Thanks for Taking Time to Read.
Posted by ANIKET KADAM (Guest)
on 2012-09-08 06:18
(Received via mailing list)
please  help me
Posted by Javier Quarite (Guest)
on 2012-09-08 06:26
(Received via mailing list)
Rails is smart enough to determine if you want to create or drop a table 
if
you have done the migration with change
def change
  #code here
end

it only depends on how you write the commands
if you do
  rake db:migrate
then it will create the db (if the code inside change is about it) and 
if
you do
  rake db:rollback
it will drop that table
in other case then

def up
  #create table here
end

def down
  #drop table here
end

take a look here
http://guides.rubyonrails.org/migrations.html
and then here
http://stackoverflow.com/questions/10365129/rails-...
http://stackoverflow.com/questions/7600415/rails-3...
there is a lot more on google

JavierQ
Posted by fahim patel (fahim_patel)
on 2012-09-08 09:26
(Received via mailing list)
use def change
forget up and down def

cheers
Fahim Babar Patel
Posted by ANIKET KADAM (Guest)
on 2012-09-08 12:45
(Received via mailing list)
thanks for reply
Posted by Colin Law (Guest)
on 2012-09-08 22:19
(Received via mailing list)
On 7 September 2012 22:08, ACK <aniketkadam1992@gmail.com> wrote:
> passed a parameters
> 2) rails generate model Page
> end
>
>
> So which is the good way to do above things example 1 or example 2?
> Please tell.

It is entirely up to you, do whichever you prefer.

Colin
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.