Error when following Agile Web Development in RoR

I was originally using instant rails, and decided to try installing
ruby, rails, and mysql on my own. No problem with the install. I used
gem install rails --include-dependencies, and got no errors. The
problem seems to be with defining the scaffold method. I had no
problems with this in Instant Rails, and i’m guessing this has
something to do with Rails 2.0. Would the RoR gurus please lend a
hand, and guide me to the light?

thanks,

Jason

NoMethodError in AdminController#index

undefined method `scaffold’ for AdminController:Class
RAILS_ROOT: /Users/jason/rails/depot

Application Trace | Framework Trace | Full Trace
app/controllers/admin_controller.rb:2

On 12/8/07, jason white [email protected] wrote:

I was originally using instant rails, and decided to try installing ruby,
rails, and mysql on my own. No problem with the install. I used gem install
rails --include-dependencies, and got no errors. The problem seems to be
with defining the scaffold method. I had no problems with this in Instant
Rails, and i’m guessing this has something to do with Rails 2.0. Would the
RoR gurus please lend a hand, and guide me to the light?

Yep, dynamic scaffolding has been moved out to a plugin in Rails 2.0.

Your options are:

  1. Switch to rails 1.2.6. This will be the easiest route if you’re
    still learning rails using AWDWR 2nd ed.
  2. Install the scaffolding plugin with:
    script/plugin install scaffolding

Option 1 means you are continuing to tread on the same turf expected
by the book, Option 2 is but on step towards adapting your knowledge,
and the books, to Rails 2.0.


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

I too had the AWDwR book 2nd Edition, P3.0 printing (use the P2.0
errata says Dave).
I installed the scaffolding plugin. That step alone, didn’t help,
although it may have been best to delete the depot folder and start
again. But that plugin may have been a different type of scaffolding.

I went back to rails version 1.2.5, that was installed when I first
set up Ruby on Linix Fedora 7. I used the commands from a later post
(Jan 1, by Jos Achten, step 3). In fact I had 1.2.5, and 2.0.2
installed and it asked me which I wanted to uninstall. In the end I
uninstalled both and asked for “–version 1.2.5 --include-
dependencies” and that did it. Then I had to delete the depot folder
and restart from the beginning of that chapter. Everything worked as
on pages 68 onward. Frankly, I’m impressed that it generated so much
automatically.

On Dec 10 2007, 9:31 am, “Rick DeNatale” [email protected]

Thanks for asking this question, and thanks for all the replies!
I ran into the same issue today, and thanks to this page here, it was
quick and easy to resolve.

Summary:

  1. I had done the standard Windows installation as described in AWDwR
    2nd Edition
  2. Gotten to the point in the book where I got the aforementioned
    error.
  3. typed “gem uninstall rails” at the rails command line
  4. typed “gem install rails --version 1.2.6 --include-dependencies” at
    the rails command line
  5. renamed the old depot folder (to old_broken_depot, in my case); you
    could just delete the dir instead
  6. recreated everything in minutes (change the D:/Rails to wherever
    you installed rails):
    D:\Rails\rails_apps\work>rails depot
    cd depot
    D:\Rails\rails_apps\work\depot>ruby script/generate model product
    edit D:\Rails\rails_apps\work\depot\db\migrate\001_create_products.rb
    add
    t.column :title, :string
    t.column :text, :text
    t.column :image_url, :string
    rake db:migrate
    ruby script/generate controller admin
    edit D:\Rails\rails_apps\work\depot\app\controllers
    \admin_controller.rb
    add
    scaffold :product

Again, thank you for making this so easy!

Werner

Thank you for asking the questions, and thank you for all the replies!

I just ran into the same issue and had it resolved in no time flat
thanks to you!

Summary:

  1. I had installed Rails according to the Windows recommendation in
    the book
  2. When I ran into the problem, I googled the error message, found
    this error message, and did the following:
  3. typed “gem uninstall rails” at the rails command line
  4. typed “gem install rails --version 1.2.6 --include-dependencies”
    at the rails command line
  5. delete or rename the original depot folder
  6. do the following to quickly get back to where you were when the
    error hit you:
    D:\Rails\rails_apps\work>rails depot
    cd depot
    D:\Rails\rails_apps\work\depot>ruby script/generate model product
    edit D:\Rails\rails_apps\work\depot\db\migrate\001_create_products.rb
    add
    t.column :title, :string
    t.column :text, :text
    t.column :image_url, :string
    rake db:migrate
    ruby script/generate controller admin
    edit D:\Rails\rails_apps\work\depot\app\controllers
    \admin_controller.rb
    add
    scaffold :product

(change D:\Rails to where you installed rails, obviously)

Thanks,
Werner

If you’re following the AWDWR book using Rails 2 you will hit other
problems - for example when it talks about pagination that has been
removed from Rails 2 so it won’t work as expected. While running through
the Depot for learning I’d stick with 1.2.6 and then start develping on
1.2.6 so you can rely on the book. Only make the change to 2.0 when
you’re comfortable with the basics.

Just a quick correction to the last entry. When editing the migration
for the products model, the line ‘t.column :text, :text’ should be
‘t.column :description, :text’. My validation kept failing until I
realized that the ‘description’ column had been incorrectly named as
‘text’.

Bob

You can install “classic pagination” if that’s an issue.
http://railscasts.com/episodes/51

On the topic of scaffolding–I’ve found this helpful:

I originally got the undefined method scaffold' for AdminController:Class</b> then after installing pagination I got <b>undefined methodpaginate’
for #<AdminController:…

How I got around was this:

  1. check all installed gems on your machine
    gem list --local
    check the rails versions installed (in my case, this was 2.0.2, 1.2.6,
    1.2.5, 1.2.3)

  2. uninstall version 2.0.2, using this command:
    sudo gem uninstall -v=2.0.2 rails

I tried installing the scaffolding plugin as suggested, and now I get
the following error:

undefined method `paginate’ for #AdminController:0x3216af8
RAILS_ROOT: C:/InstantRails-2.0-win/rails_apps/depot

Do I need another plugin?

Thanks,
Jeff

I admit, I’m a Rails noob and have been following the instructions in
AWDwR edition 3, they haven’t mentioned lack of support for this, so
you kind of get stuck on page 76. Is it worth rolling back my version
of rails do you think, or is scaffolding something I can live/learn
without …

cheers
Tim

On Apr 1, 7:50 am, rail_passenger_beginners_class

Is there any place where it is summarized the changes to make to
Awdwr’s depot exercise if we decide to use RoR 2.0?
It doesn’t make sens to me to learn an old technology when I’m not
gonna stick with it anyways…

thanks

Yep - get the third edition ( currently in Beta )
http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
HTH - Dave

Scaffolding is definitely something you can live and learn without.
On Mon, Apr 28, 2008 at 5:22 PM, 90kts [email protected] wrote:

check the rails versions installed (in my case, this was 2.0.2, 1.2.6,
1.2.5, 1.2.3)

  1. uninstall version 2.0.2, using this command:
    sudo gem uninstall -v=2.0.2 rails


Ryan B.
http://www.frozenplague.net
Feel free to add me to MSN and/or GTalk as this email.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs