A Question about Model and Database?

18 views
Skip to first unread message

ACK

unread,
Sep 7, 2012, 5:08:09 PM9/7/12
to rubyonra...@googlegroups.com
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
  end
end

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
  end
end

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.

ANIKET KADAM

unread,
Sep 8, 2012, 12:17:27 AM9/8/12
to rubyonra...@googlegroups.com
please  help me


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/WsDhrCEK-u8J.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Javier Quarite

unread,
Sep 8, 2012, 12:25:59 AM9/8/12
to rubyonra...@googlegroups.com
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
and then here
there is a lot more on google

JavierQ

Fahim Patel

unread,
Sep 8, 2012, 3:25:39 AM9/8/12
to rubyonra...@googlegroups.com
use def change
forget up and down def

cheers
Fahim Babar Patel

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.

ANIKET KADAM

unread,
Sep 8, 2012, 6:44:19 AM9/8/12
to rubyonra...@googlegroups.com
thanks for reply

On Sat, Sep 8, 2012 at 9:55 AM, Javier Quarite <jqua...@gmail.com> wrote:

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.

Colin Law

unread,
Sep 8, 2012, 4:18:19 PM9/8/12
to rubyonra...@googlegroups.com
It is entirely up to you, do whichever you prefer.

Colin
Reply all
Reply to author
Forward
0 new messages