Hi, first of all I will apologize in advance for my presumably noobish question, but I''m only starting to learn Rails and am a little confused with all the changes in 2.0.1. There are as good as no tutorials out yet and the 2 or 3 screencasts I''ve seen deal with the creation of both the app and the database. Now my problem is that I already have a database with a fair amount of records in it (contacts with columns id:integer, first_name:string, last_name:string). In order to get a simple CRUD interface (that''s all I want for now), with the pre-2.0 version of Rails, I could simply "generate scaffold contacts" and the framework would provide me with all the necessary files to get started with (controller, model and views). When I try the same command ("generate scaffold contacts") in 2.0.1 it will almost do the same thing, but somehow it misses all the fields from the database. The list-view solely contains a long listing of "Show Edit Destroy" lines (no first or last name listed here). When I click on Edit, the form just provides me with an update button. So no fields for first- and last name here either. Is it supposed to be this way now in 2.0.1? If so, what can I do to bring back the old functionality? Regards, Sebastian --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
New way is to specify the fields. script/generate scaffold person first_name:string last_name:string On Dec 10, 2007 1:46 PM, Sebastian <sebastian.vogelsang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > Hi, > > first of all I will apologize in advance for my presumably noobish > question, but I''m only starting to learn Rails and am a little > confused with all the changes in 2.0.1. There are as good as no > tutorials out yet and the 2 or 3 screencasts I''ve seen deal with the > creation of both the app and the database. > > Now my problem is that I already have a database with a fair amount of > records in it (contacts with columns id:integer, first_name:string, > last_name:string). In order to get a simple CRUD interface (that''s all > I want for now), with the pre-2.0 version of Rails, I could simply > "generate scaffold contacts" and the framework would provide me with > all the necessary files to get started with (controller, model and > views). > > When I try the same command ("generate scaffold contacts") in 2.0.1 it > will almost do the same thing, but somehow it misses all the fields > from the database. The list-view solely contains a long listing of > "Show Edit Destroy" lines (no first or last name listed here). When I > click on Edit, the form just provides me with an update button. So no > fields for first- and last name here either. > > Is it supposed to be this way now in 2.0.1? If so, what can I do to > bring back the old functionality? > > Regards, > > Sebastian > > >-- Ryan Bigg http://www.frozenplague.net --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hey Ryan, thanks for the quick answer. I tried that multiple times before via the generator function in the RadRails IDE and it didn''t work (nothing happened, no error message). It simply didn''t create any controllers/views/models. Just now I tried it again via the windows console, et voilĂ , ROR creates all the classes like it used to. So it seems that this malfunction was due to a bug/2.0-incompatibility in RadRails. Hope, they''ll fix this soon! Thanks again, Sebastian On Dec 10, 4:40 am, "Ryan Bigg" <radarliste...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> New way is to specify the fields. > > script/generate scaffold person first_name:string last_name:string > > On Dec 10, 2007 1:46 PM, Sebastian <sebastian.vogels...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > > > Hi, > > > first of all I will apologize in advance for my presumably noobish > > question, but I''m only starting to learn Rails and am a little > > confused with all the changes in 2.0.1. There are as good as no > > tutorials out yet and the 2 or 3 screencasts I''ve seen deal with the > > creation of both the app and the database. > > > Now my problem is that I already have a database with a fair amount of > > records in it (contacts with columns id:integer, first_name:string, > > last_name:string). In order to get a simple CRUD interface (that''s all > > I want for now), with the pre-2.0 version of Rails, I could simply > > "generate scaffold contacts" and the framework would provide me with > > all the necessary files to get started with (controller, model and > > views). > > > When I try the same command ("generate scaffold contacts") in 2.0.1 it > > will almost do the same thing, but somehow it misses all the fields > > from the database. The list-view solely contains a long listing of > > "Show Edit Destroy" lines (no first or last name listed here). When I > > click on Edit, the form just provides me with an update button. So no > > fields for first- and last name here either. > > > Is it supposed to be this way now in 2.0.1? If so, what can I do to > > bring back the old functionality? > > > Regards, > > > Sebastian > > -- > Ryan Bigghttp://www.frozenplague.net--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Rick DeNatale
2007-Dec-10 15:46 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
On 12/9/07, Ryan Bigg <radarlistener-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> New way is to specify the fields. > > script/generate scaffold person first_name:string last_name:stringAnd if the table already exists you might want to add --skip-migration script/generate scaffold person first_name:string last_name:string --skip-migration -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/ --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
felipekk-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2007-Dec-10 20:12 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
I did this yesterday. You _HAVE_ to specify --skip-migration in case its an existing model, else it will stop the whole "generate scaffold" task before it creates the controller. On Dec 10, 7:46 am, "Rick DeNatale" <rick.denat...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On 12/9/07, Ryan Bigg <radarliste...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > New way is to specify the fields. > > > script/generate scaffold person first_name:string last_name:string > > And if the table already exists you might want to add --skip-migration > > script/generate scaffold person first_name:string last_name:string > --skip-migration > > -- > Rick DeNatale > > My blog on Rubyhttp://talklikeaduck.denhaven2.com/--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Brian Hogan
2007-Dec-10 21:24 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
Ok, been following this all day. Scaffolding is really not great for production, but it is nice to have it build the forms for you. It saves me some typing at least, and I find that''s what most people are after with the scaffolding. With that in mind, I took some of the old scaffolding code and made it into a gem. It''s designed to work off of a pre-existing model. sudo gem install scaffold_form_generator Then just do ruby script/generate scaffold_form User users It will build these files /app/views/users/new.html.erb /app/views/users/edit.html.erb /app/views/users/_form.html.erb The form builder skips created_at, updated_at, lock_version, and anything with _id at the end. It also makes boolean fields checkboxes instead of true/false dropdowns. Learn more at http://scaffoldform.rubyforge.org Now, it doesn''t do "everything" completely RESTful yet but it''s a really good start. If you have suggestions, let me know. It''s not going to ever be extended to handle relationships - I looked into it and it''s not worth trying - too hard to know what you are trying to relate, what you want to show in your dropdowns, etc. -bph On Dec 10, 2007 2:12 PM, felipekk-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <felipekk-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > I did this yesterday. You _HAVE_ to specify --skip-migration in case > its an existing model, else it will stop the whole "generate scaffold" > task before it creates the controller. > > On Dec 10, 7:46 am, "Rick DeNatale" <rick.denat...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > On 12/9/07, Ryan Bigg <radarliste...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > New way is to specify the fields. > > > > > script/generate scaffold person first_name:string last_name:string > > > > And if the table already exists you might want to add --skip-migration > > > > script/generate scaffold person first_name:string last_name:string > > --skip-migration > > > > -- > > Rick DeNatale > > > > My blog on Rubyhttp://talklikeaduck.denhaven2.com/ > > >--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ryan Bigg wrote:> New way is to specify the fields. > > script/generate scaffold person first_name:string last_name:string >I''m considering Ruby on Rails, but I already have a big database schema, and I''d rather not re-type firstname:string lastname:string, for the dozens of fields in my dozens of tables. Is there some way for Ruby to build the scaffold based on what it finds in the existing database? Wasn''t that the whole point in previous versions? This seems like a big step backwards.... -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
The idea is that Rails doesn''t know which of your fields you want to include, or what kind they are. It''ll be easier for you to type them and design your own layout. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
... and one more comment/question... how can I prevent Ruby from pluralizing my model. Say my table is called "game." If I try this new scaffold with... ruby script/generate scaffold game name:string ... what I get in my file structure is "games" (plural), but the table in my existing database is "game" (singular). I then get SQL errors on like "Table db.games doesn''t exist." -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Not too sure on that, I was sure that scaffolding named everything correctly. On Jan 8, 2008 3:51 PM, Mr Mapes <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > ... and one more comment/question... how can I prevent Ruby from > pluralizing my model. Say my table is called "game." If I try this new > scaffold with... > > ruby script/generate scaffold game name:string > > ... what I get in my file structure is "games" (plural), but the table > in my existing database is "game" (singular). I then get SQL errors on > like "Table db.games doesn''t exist." > -- > Posted via http://www.ruby-forum.com/. > > > >-- Ryan Bigg http://www.frozenplague.net Feel free to add me to MSN and/or GTalk as this email. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Brian Hogan
2008-Jan-08 13:38 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
On Jan 7, 2008 11:21 PM, Mr Mapes <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > ... and one more comment/question... how can I prevent Ruby from > pluralizing my model. Say my table is called "game." If I try this new > scaffold with... > > ruby script/generate scaffold game name:string > > ... what I get in my file structure is "games" (plural), but the table > in my existing database is "game" (singular). I then get SQL errors on > like "Table db.games doesn''t exist." > -- > Posted via http://www.ruby-forum.com/. > > You''re not following conventions, which is explained by your use of thelegacy schema. Rails assumes that table names are plural and model names are singular. What you actually need to do is run the scaffold as such: ruby script/generate scaffold game name:string Then open up app/models/game.rb Add the "set_table_name" method call to tell the model to use the singular table. class Game < ActiveRecord::Base set_table_name "game" end If your primary key is not called "id" then you can specify that as well. Be warned though - Rails likes integers for its keys. class Game < ActiveRecord::Base set_table_name "game" set_primary_key "game_id" end Finally, Rails is not about scaffolding. That was a marketing trick to get people sucked in. Most people who do Rails professionally don''t use scaffolding at all, as it often generates a bunch of code you don''t need, or is not complex enough to handle the basic tasks. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Jan 8, 8:38 am, "Brian Hogan" <bpho...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Finally, Rails is not about scaffolding. That was a marketing trick to get > people sucked in. Most people who do Rails professionally don''t use > scaffolding at all, as it often generates a bunch of code you don''t need, or > is not complex enough to handle the basic tasks.I do (or did) use scaffolding. It''s probably a unique situation: I work for a government agency that has a large number of legacy datatables which just need maintenance API''s stuck onto them to do CRUD on our intranet. Some of these monsters have a bajillion fields, and I can erase code a whole lot faster than I can type it. So, I used "scaffold Monster" all the time. I''m sure you''re right about most people who do Rails professionally, though. If I were making standalone websites, like most folks, scaffolding might be a distraction. I''d do paper prototypes first, then code as needed in that situation. I really miss the "old school" scaffolding -- in fact, I may recreate it and call it something else like scaffold_api or scaffold_crud or something. Thanks for the scaffold_form_generator, by the way -- it put back a lot of what I missed the most. Ron --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Brian Hogan
2008-Jan-08 19:34 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
Ron: Well, in that case, check out my gem. http://scaffoldform.rubyforge.org It uses the old-style model reflection to build just the form (new, edit, and _form.html.erb) It doesn''t generate models or controllers... just the views for the form. I did this for exactly the reason you outlined.. generating a form can be handy. I basically took the old code from Rails 1.2.3 and made it work with 2.0, with a few minor exceptions: anything with _id is not generated as a field, created_at and updated_at fields are skipped, and anything that''s a boolean gets a checkbox instead of a dropdown. Maybe that will help. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Brian Hogan
2008-Jan-08 19:34 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
lol I missed the end of your reply :) Looks like you already are using it. Do you have any suggestions for additions to it? On Jan 8, 2008 1:34 PM, Brian Hogan <bphogan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Ron: > > Well, in that case, check out my gem. http://scaffoldform.rubyforge.org > > It uses the old-style model reflection to build just the form (new, edit, > and _form.html.erb) It doesn''t generate models or controllers... just the > views for the form. I did this for exactly the reason you outlined.. > generating a form can be handy. I basically took the old code from Rails > 1.2.3 and made it work with 2.0, with a few minor exceptions: anything > with _id is not generated as a field, created_at and updated_at fields are > skipped, and anything that''s a boolean gets a checkbox instead of a > dropdown. > > Maybe that will help. >--~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Mr Mapes wrote:> Ryan Bigg wrote: >> New way is to specify the fields. >> >> script/generate scaffold person first_name:string last_name:string >> > > I''m considering Ruby on Rails, but I already have a big database schema, > and I''d rather not re-type firstname:string lastname:string, for the > dozens of fields in my dozens of tables. Is there some way for Ruby to > build the scaffold based on what it finds in the existing database? > Wasn''t that the whole point in previous versions? This seems like a big > step backwards....I''m a little late to the party here. Try this from script/console>> TableClass.columns.each { |c| puts c.inspect }; nilYou''ll see a list of all the columns in the table, along with the data types and names and so forth. It should be a pleasurable afternoon to write a script that consumes this and generates a "script/generate scaffold" command. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Humberto P.
2012-Dec-06 18:09 UTC
Re: Scaffolding for pre-existing database table in 2.0.1
Mr Mapes wrote in post #613756:> Ryan Bigg wrote: >> New way is to specify the fields. >> >> script/generate scaffold person first_name:string last_name:string >> > > I''m considering Ruby on Rails, but I already have a big database schema, > and I''d rather not re-type firstname:string lastname:string, for the > dozens of fields in my dozens of tables. Is there some way for Ruby to > build the scaffold based on what it finds in the existing database? > Wasn''t that the whole point in previous versions? This seems like a big > step backwards....Probably to late for Ryan Bigg problem, but there is a cool gem called schema_to_scaffold to generate a scaffold script. it outputs: rails g scaffold users fname:string lname:string bdate:date email:string encrypted_password:string from your schema.rb our your renamed schema.rb. Check [here][1] [1]: https://rubygems.org/gems/schema_to_scaffold -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.