[前][次][番号順一覧][スレッド一覧]

rails:3805

From: dezawa <dezawa@a...>
Date: Thu, 13 Sep 2012 16:08:53 +0900
Subject: [rails:3805] rails 3.2 の autoload_paths

出沢です

Rails3.2の勉強を、といままでRails 2.3 で動かしていたアプリの
移行を行っていて、はまっています。

いままで restful-authentication を使っていたので、
rails3-restful-authentication を使うことにしました。

Gemfile に
 gem "rails3-restful-authentication", "~> 3.0.1"
を追加し、bundle し、
  rails g authenticated user sessions --stateful
を行うと、model,view,controller,unit test,function test ができ、
lib に authenticated_system.rb  authenticated_test_helper.rb が
作られました。

ここで、
rake test:units TEST=test/unit/user_test.rb
を行うと 
 ・・・/app/models/user.rb:4:in `<class:User>': uninitialized constant
   User::Authentication (NameError)
のエラーとなります。
  include Authentication
の失敗です。

Rails.root以下には Authentication の定義は見つかりませんでした。
  find . -name "*rb" | xargs grep Authentication

gemで入れてるのだから、と探すと
/usr/lib/ruby/gems/1.9.1/gems/rails3-restful-authentication-3.0.1/lib/
に authentication.rb があり、これとその下の subdir authentication に
models/user.rb がinclude している
  include Authentication
  include Authentication::ByPassword
  include Authentication::ByCookieToken
  include Authorization::StatefulRoles
がありました。

さて、
Gemfile で指定されたgemは autoload の対象にならないのでしょうか?
autoloadの対象にするにはどうしたらよいでしょうか。

# controllerがinclude している AuthenticatedSystem のためには
# config/application.rb: に
#   config.autoload_paths += %W(#{config.root}/lib)
#を追加しています。
#  app/lib に移す方が Rails3 的なのでしょうか

よろしくお願いします。

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    3805 2012-09-13 09:08 [dezawa@a...         ] rails 3.2 の autoload_paths            
      3806 2012-09-13 09:58 ┗[netwillnet@g...     ]                                       
      3807 2012-09-13 12:13  ┣[dezawa@a...         ]                                     
      3819 2012-09-21 00:53  ┗[dezawa@a...         ]