rails:3806
From: 前島真一 <netwillnet@g...>
Date: Thu, 13 Sep 2012 16:58:04 +0900
Subject: [rails:3806] Re: rails 3.2 の autoload_paths
前島です。 30分ほど調査してみました。 とりあえず > User::Authentication (NameError) については gem "rails3-restful-authentication", "~> 3.0.1", require: 'restful_authentication' のようにすれば回避できます。ただそうすると次は NoMethodError: undefined method `acts_as_state_machine' のようなエラーになります。acts_as_state_machine はかなり前からメンテされておらず、Rails3では使えそうにありません。 restful-authentication で aasm を使うオプションがあったはずなので、そちらで generate します rails g authenticated user sessions --stateful → rails g authenticated user sessions --aasm さらに Gemfileに gem 'aasm' として bundle install します。とすると次は NameError: uninitialized constant User::Authorization のようなエラーになります…。というところで力尽きました。 正直まともにメンテされているとは思えないので、Rails3.2以降を使うのであれば別の gem を使うか、スクラッチで実装するのがいいと思います。 日付:2012年9月13日木曜日、時刻:16:08、差出人:dezawa: > 出沢です > > 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... (mailto: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... ]