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

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...         ]