よしたんのぶろぐ
201706<<12345678910111213141516171819202122232425262728293031>>201708
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
   
   
Rails 2.0をがんばってますが、いきなりつまづいてしまいました。
「RailsによるアジャイルWebアプリケーション開発」を参考に勉強してますが、Rails1.2のお作法のようで、2.0ではなかなかうまく動いてくれません。

例えば、controllerに
class AdminController < ApplicationController
  scaffold :product
end
と定義したあと、アクセスしてみると
NoMethodError in AdminController#index
undefined method `scaffold' for AdminController:Class
などと出る。 調べてみると、誰かが
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
と書いていたので、scaffolding pluginを入れてみたりする。
D:\work\ruby\depot>ruby script/plugin install scaffolding
+ ./MIT-LICENSE
+ ./README
+ ./Rakefile
+ ./init.rb
+ ./lib/scaffolding.rb
+ ./lib/templates/edit.erb
+ ./lib/templates/layout.erb
+ ./lib/templates/list.erb
+ ./lib/templates/new.erb
+ ./lib/templates/show.erb
+ ./test/scaffolding_test.rb
として入れてみた。ところが、、更に
NoMethodError in AdminController#index
undefined method `paginate' for #
paginateってなんじゃ?http://d.hatena.ne.jp/idesaku/20071210で同じような問題にあたった時の対処が書いてあったので参考にした。
D:\work\ruby\depot>ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/will_paginate/
+ ./README
+ ./Rakefile
+ ./init.rb
+ ./lib/will_paginate/collection.rb
+ ./lib/will_paginate/finder.rb
+ ./lib/will_paginate/view_helpers.rb
+ ./test/boot.rb
+ ./test/console
+ ./test/finder_test.rb
+ ./test/fixtures/admin.rb
+ ./test/fixtures/companies.yml
+ ./test/fixtures/company.rb
+ ./test/fixtures/developer.rb
+ ./test/fixtures/developers_projects.yml
+ ./test/fixtures/project.rb
+ ./test/fixtures/projects.yml
+ ./test/fixtures/replies.yml
+ ./test/fixtures/reply.rb
+ ./test/fixtures/schema.sql
+ ./test/fixtures/topic.rb
+ ./test/fixtures/topics.yml
+ ./test/fixtures/user.rb
+ ./test/fixtures/users.yml
+ ./test/helper.rb
+ ./test/lib/activerecord_test_connector.rb
+ ./test/lib/load_fixtures.rb
+ ./test/pagination_test.rb
が、、一向に問題は解決されず。
初心者には1.2->2.0への読み替えはちと厳しいか。


2008/01/12 追記:
更に以下を入れると動きました。
D:\work\ruby\depot>ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/classic_pagination/
再びアクセスしたあと、フォームのCreateで以下のエラーが。
ActionController::InvalidAuthenticityToken
これも調べてみると、以下のように1行Controllerに書いてやる必要がある。参考:Rails 2.0でCSRF対策
class AdminController < ApplicationController
  protect_from_forgery :secret => 'yoshitan-hogehoge', :only => :index
  scaffold :product
end
と、なんとかサンプルの第一歩が動くようになったのでした。とほほ。。

2008/01/09 追記:以下、現時点での初心者の学習指針として参考になるかも。
Rails 2.0 - 初心者がすべきことは?
スポンサーサイト
   
   
コメント
この記事へのコメント
やっぱ慣れるまでは1.2でいいのでは?俺も

gem list

で入ってるの全部 gem uninstallして

gem install rails -v 1.2.6

としましたよ。さっき。

ちなみに、scaffoldはモデルをリストにして表示する機能で、pagenateは20件ごとなどに次へとかやってくれるやつ。
2007/12/26(水) 20:04:01 | URL | daitoku #-[ 編集]
Re:
daitoku-san,
サンキューです。ひとまず基本を理解するために、1.2でやってみようと思います。
2007/12/26(水) 22:08:25 | URL | よしたん #-[ 編集]
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
RailsによるアジャイルWebアプリケーション開発 第2版 Dave Thomas David Heinemeier Hansson Leon Breedt Mike Clark Andreas Schwarz James Duncan Davidson Justin Gehtland 仕事でJavaを使用することになったので、家では他の言語を用いて見ようと考えた。ちなみにrub...
2008/06/08(日) 00:30:58 | 雪羽の発火後忘失
結論: Railsのバージョンの違いは致命的。この本は扱っているRailsのバージョンが1.1と古いので買うべからず。買うならRails 2.xと明記した最近の本を。 O&#8217;reillyでRuby on Railsを扱っている...
2008/07/27(日) 03:53:23 | blog Boreal Kiss
copyright © 2004-2005 Powered By FC2ブログ allrights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。