私は中規模のRailsアプリケーションで作業しており、すべてのコントローラーでこれを実行します。
def create
@object = Model.new(params[:model].merge(editing_user: current_user))
...
end
def update
@object = Model.find(params[:id])
@object.editing_user = current_user
...
end
編集ユーザーを何度も設定することはDRYではありません。オブザーバーでこれをクリーンアップすることを考えましたが、現在のユーザーにアクセスする必要があります。オブザーバーは現在のユーザーにアクセスできません。また、オブザーバーもアクセスできません(デメテルの法則)。
コントローラ間でこれを乾かす方法について何か提案はありますか?