Creating Models from Scema.rb Possible?, I have 50 tables

Guys,

I have experience with symfony frame work thats why asking the question here.Excuse me if I am wrong

I have created a schema.rb file with definitions of 50 files and schema:load did creation of the tables.

Now

1) I want to create models of these tables from schema.rb without entering the fields names in the command line. Is this possible? 2) I want to create controllers and views also with respect to it, possible??

db:migrate will destroying my well defined database table structure. IS there any way to keep the schema.rb without overwriting it?

Please let me know the answers asap

With that many tables probably the quickest way (if you cannot find it already done by someone else) will be to write a script in whatever language you are most comfortable, to create a set of commands like rails generate scafffold <name> <field list with type> This will generate everything, including migrations so you can start with an empty database and run the migrations.

If you do this make sure to publish it so that others will not have to repeat your work.

Colin

How can I get the table and field list?. From schema.rb? db:migrate will destroying my well defined database table structure. IS there any way to keep the schema.rb without overwriting it?

Please don't top post, it makes it difficult to follow the thread. Insert your reply at appropriate points in previous message. Thanks.

How can I get the table and field list?. From schema.rb?

That is what I meant to say, yes.

Colin

Rebin Joseph wrote in post #1034085:

Guys,

I have experience with symfony frame work thats why asking the question here.Excuse me if I am wrong

This reply is for your future reference, and are merely suggestions...

I have created a schema.rb file with definitions of 50 files and schema:load did creation of the tables.

It is typical for Rails developers to generate database tables as a series of migrations where tables are added throughout the development cycle of a project. The framework is designed this way because most Rails developers use Behavior/Test Driven Development (BDD/TDD) techniques.

Now

1) I want to create models of these tables from schema.rb without entering the fields names in the command line. Is this possible?

Say you have a "users" table in your database... Following is what the associated model file would look like:

class User < ActiveRecord::Base end

Yep, that is it. This is what "rails generate model user first:name last:name" would generate no matter how many fields you add to the underlying database table.

Should be pretty easy for you to write a Ruby script that would generate your 50 model files.

2) I want to create controllers and views also with respect to it, possible??

That could be tricky since that's what "rails generate scaffold..." was designed to do. If you want to stray from the well defined path the framework creators provided for you, and blaze your own trail, then you've got a lot more work ahead of you than typical Rails developers who follow the path.

db:migrate will destroying my well defined database table structure. IS there any way to keep the schema.rb without overwriting it?

Yes. That's correct. Hence the warning in

Robert Walker wrote in post #1034116:

Yep, that is it. This is what "rails generate model user first:name last:name" would generate no matter how many fields you add to the underlying database table.

Oops. Typed to hastily that should have read "rails generate model user first_name:string last_name:string".

What about this?. Does this one have any disadvantges?

http://magicmodels.rubyforge.org/

rails g scaffold --help

shows:

ActiveRecord options:       [--migration] # Indicates when to generate migration                                # Default: true

Perhaps that is useful for you?

Whats the use of 'g' here?

Whats the use of 'g' here?

rails g is a shorthand way of saying rails generate

Note how much easier it is to understand my post when I reply inline after your question. In order to understand your question I first had to scroll down to the bottom to find out what " Whats the use of 'g' here?" was referring to.

Colin