Rspec Rails、なんか仕様が変わった?

rspecrspec-railsを1.1.12から1.2.0にアップデートしたら、なんか、今まで通ってたexamplesが通らなくなったwww
しかも、オイラが書いた訳じゃないものだしwww


restful_authenticationなんだけど。
具体的には、

  • spec/controllers/users_controller_spec.rb
  • spec/controllers/users_controller_spec.rb
  • spec/controllers/sessions_controller_spec.rb


どれも、ルーティング絡み。
どれも、「んなアクションねぇよ」系。


該当exampleは、こんな感じ。

    it "should route users's 'update' action correctly" do
      route_for(:controller => 'users', :action => 'update', :id => '1').should == "/users/1"
    end


エラー・メッセージは、こんな感じ。

Test::Unit::AssertionFailedError in 'UsersController route generation should route users's 'update' action correctly'
The recognized options <{"action"=>"show", "id"=>"1", "controller"=>"users"}> did not match <{"action"=>"update", "id"=>"1", "controller"=>"users"}>, difference: <{"action"=>"update"}>


んんんん?
route_forが変わった?
んじゃあ、ちょっとプロジェクト自体も、2.3.2にアップデートする。

# config/environment.rb
-RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION

で、

$ rake rails:update


ん。
で、spec回す。


わっはっは。
failure増えたwwww


どないせえとwww


増えたのは、この辺。

1)
NoMethodError in 'UsersController named routing should route users_path() to /users'
undefined method `formatted_users_path' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_4::Subclass_3:0x273c0b0>
./spec/controllers/users_controller_spec.rb:175:

2)
NoMethodError in 'UsersController named routing should route new_user_path() to /users/new'
undefined method `formatted_new_user_path' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_4::Subclass_3:0x2556f5c>
./spec/controllers/users_controller_spec.rb:181:

3)
NoMethodError in 'UsersController named routing should route user_(:id => '1') to /users/1'
undefined method `formatted_user_path' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_4::Subclass_3:0x252aec0>
./spec/controllers/users_controller_spec.rb:187:

行数は気にしない。


アレ?
rails 2.3.2から、formatted_ほげ_pathって、効かなくなったんだっけ?
じゃあ、該当exampleからformatted_ほげほげの「formatted_」を削除。


ん。
でも、根本的なところの解決にはなっていない訳でwww


まいったな...
なんか、map.resourcesとか、map.resourceでのルーティングを拾ってない臭いんだよな...


どうしよう...