コントローラーを肥大化させることなく、Rails モデルで所有権の検証を行う最善の方法を探しています。これは、current_user を何らかの形でモデルに渡す必要があることを意味します。
現在、すべてのリクエストの開始時に User モデルのクラス属性を current_user に設定しています。
class User < ActiveRecord::Base
cattr_accessor :current_user
end
class ApplicationController < ActionController::Base
before_filter :set_current_user
def set_current_user
User.current_user = current_user
end
end
このシナリオで User.current_user の有効期間を完全に理解しているかどうかはわかりません。リクエスト中に値が変更される可能性はありますか?
主に、上記が安全に使用できるかどうか、およびより良いアプローチがあるかどうかを知りたいです。