2 questions about generate scaffold


#1

i know this may be easy, but i cant find how to do this.

i have a table called status_def
i want to generate a scaffold for it, but it will not let me create
one because (i think) the table name is not plural.

is there a command line option to script/generate that will allow me
to create a scaffold if the table is not plural ?

btw - all my other tables obey conventions nice, but too much code
will have to be re-written to change the name of this table.

next question.
one of the fields in the status_def table is oem. if i generate a
scaffold for this table, can i put something in the model that will
only allow records of oem = ‘somecompany’ to be selected ?

thanks for any tips


#2

On Feb 9, 5:28 am, “nephish” removed_email_address@domain.invalid wrote:

will have to be re-written to change the name of this table.

next question.
one of the fields in the status_def table is oem. if i generate a
scaffold for this table, can i put something in the model that will
only allow records of oem = ‘somecompany’ to be selected ?

thanks for any tips

I think this is not really a problem with the scaffold but the model,
which will be pluralised by default.

Once you have generated your scaffold, edit the /app/models/
status_def.rb file to :

class StatusDef< ActiveRecord::Base
set_table_name “status_def”
end

I don’t know the answer to your second question, but it implies there
is a related company. If this is the case you could use the ID of the
company when selecting from status_def. Maybe use act_as_list, or
scope would be useful here?


#3

On Feb 9, 3:36 pm, “nephish” removed_email_address@domain.invalid wrote:

one because (i think) the table name is not plural.
only allow records of oem = ‘somecompany’ to be selected ?
set_table_name “status_def”
for your model (StatusDef)
and i do have the table in the database .
weird.

thanks, i found another way around the second question
sk

Ahh, opps, yes. The scaffold it built from the model, which is in
that naming format.
I know the capitals are a requirement of Ruby, but I am not sure about
the removal of underscores - probably convention again :slight_smile:

Rails will pluralise the model name to guess the table name, so:

./script/generate scaffold status_def
model = StatusDef
DB table = statusdefs <- wrong in this case.

There does not seem to be a switch on generate to override this
behaviour, so you need to do it in three steps (punishment for going
outside the conventions) :

./script/generate model status_def
model = StatusDef

Edit the /app/models/status_def.rb file, add:
set_table_name “status_def”

./script/generate scaffold status_def


#4

On Feb 8, 11:09 pm, “askegg” removed_email_address@domain.invalid wrote:

i have a table called status_def
one of the fields in the status_def table is oem. if i generate a

scaffold status_def it spit out this
I know the capitals are a requirement of Ruby, but I am not sure about
outside the conventions) :

./script/generate model status_def
model = StatusDef

Edit the /app/models/status_def.rb file, add:
set_table_name “status_def”

./script/generate scaffold status_def

thanks for the help, this table stands alone, no has_many, has_one,
hmbtm, etc… just all alone and a scaffold does all the CRUD i need.
i appreciate your help. Really, i was good on the other tables, really
i was, i even have the book ! don’t know what i was thinking still,
but i am all up and running now.
thanks again


#5

On Feb 8, 7:24 pm, “askegg” removed_email_address@domain.invalid wrote:

is there a command line option to script/generate that will allow me
thanks for any tips

I don’t know the answer to your second question, but it implies there
is a related company. If this is the case you could use the ID of the
company when selecting from status_def. Maybe use act_as_list, or
scope would be useful here?

ok, well the reason i asked was because when i did the script/generate
scaffold status_def it spit out this
Before updating scaffolding from new DB schema, try creating a table
for your model (StatusDef)
and i do have the table in the database .
weird.

thanks, i found another way around the second question
sk