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

rails:3116

From: paptimusx <paptimusx@g...>
Date: Mon, 27 Jul 2009 20:41:29 +0900
Subject: [rails:3116] restful_authentication+File_Publisher の組合せがうまくいかない

restful_authentication と
File_Publisher(http://webservice.nifty.com/rails_plugin/)を
組合せてみました。Rails2.3.2 on Ruby1.8.6 on Windows です。

認証なしだとFile_Publisherはうまく動きます。
File_Publisher以外のcontrollerはうまく動いています。


両者ともうまく動いているので単純に組み合わせてみました。

ところが...
認証つきFile_Publisherにしてみると初回はうまくいくのですが、リンクを辿ると例外が発生して
しまいました。perform_actionというルーチンの差し替えのあたりです。(この先はどうやって辿れば
よいかわかりません)

File_Publisherのソースも読んでみたのですが、問題がありそうな処理はなさそうです。
2.3.2にしたせいでしょうか。


どなたかヒントを頂ければ助かります。よろしくお願いします。


C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:414:in
`load_missing_constant'
C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:80:in
`const_missing'
C:/USER/HOME/Rails/test8/lib/authenticated_system.rb:99:in `login_from_session'
C:/USER/HOME/Rails/test8/lib/authenticated_system.rb:13:in `current_user'
C:/USER/HOME/Rails/test8/lib/authenticated_system.rb:6:in `logged_in?'
C:/USER/HOME/Rails/test8/app/controllers/application_controller.rb:17:in
`login_required_me'


ApplicationController
  include AuthenticatedSystem
  before_filter :login_required

  private def login_required
    redirect_to login_path unless logged_in?
  end

Sessionscontroller
  skip_filter :login_required


lib/authenticated_system.rb:
module AuthenticatedSystem
  protected
    # Returns true or false if the user is logged in.
    # Preloads @current_user with the user model if they're logged in.
    def logged_in?
      !!current_user
    end

    def current_user
####  @current_user ||= (login_from_session || login_from_basic_auth
|| login_from_cookie) unless @current_user == false # org
      @current_user ||= (login_from_session) unless @current_user ==
false  ← 例外発生
    end

    def current_user=(new_user)
      session[:user_id] = new_user ? new_user.id : nil
      @current_user = new_user || false
    end

    def login_from_session
      self.current_user = User.find_by_id(session[:user_id]) if
session[:user_id]  ← 例外発生
    end

rescue.rb:
          :
  module Rescue
    private
      def perform_action_with_rescue #:nodoc:
        perform_action_without_rescue    ← 例外発生
      rescue Exception => exception
        rescue_action(exception)
      end

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

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