Rails 3.0.10の奇妙な動作があります。Rails3フィルタがプロダクションでスキップされています
アプリ/コントローラ/ application_controller.rb
require 'api/api_controller'
# rest not important
アプリ/コントローラ/ API/api_controller.rb
class Api::ApiController < ActionController::Base
before_filter :require_user
def require_user
@user = User.find(xxx, yyy)
end
end
と、このコントローラ:
APP /このアプリケーション・コントローラを持ってcontrollers/api/ac_controller.rb
class Api::AcController < Api::ApiController
before_filter :find_pool, :only => [:add_pool, :remove_pool]
def add_pool
# some logic that needs @user to be set
end
def remove_pool
# some logic that needs @user to be set
end
def find_pool
# some logic here
end
end
私の問題は、生産モードでこれを実行すると、require_userフィルタが呼び出されないということです。 開発モードでこれを試してみると動作します。
開発モードではクラスがリロードされていることを理解していますが、なぜrequire_userフィルタが呼び出されないのでしょうか?
編集:ACコントローラはAPIコントローラの前にあります。
最初のアプリケーションコントローラはアプリケーションコントローラのようには見えませんが、少なくとも2番目のアプリケーションコントローラはアプリケーションコントローラのようには見えません。 –
ミハル - 申し訳ありませんええ、私はそれを固定 - これによれば、悪いコピーを& – lzap
を貼り付け、それが呼び出される必要がありますが、それはありません:http://rails.rubyonrails.org/classes/ActionController/Filters/ClassMethods.html – lzap