0


皆さん、こんにちは。
Rails 5 アプリケーションの .log 内にログ プロセスを作成していますapplication controller。プロパティを持つ多くのコントローラー内でログプロセスを呼び出したいので、そこに作成していbefore_saveます。formログには、ユーザーがon で実行した変更が保存されedit view templateます。<ObjectController:>中身が入らないのが難点application controller。コントローラーから既に取得していますが、コントローラー オブジェクトから取得する必要があるため、これもinstance variable必要です。ユーザーが入力フィールドに挿入したすべてのデータを保持します。ObjectControllerstrong parametersstrong parameters

これは私がすでにやったことです:

アプリ/コントローラー/アプリケーション コントローラー

def log
    @controlr = instance_variable_get("@#{controller_name.singularize}") #get the edited object
    attribs = @controlr.attribute_names #get object table column names
    edited_data = controlr_params #stuck here!
    ctrlr = @controlr.attributes #retrive object data from db
    ...
    ##compare the edited_data with the actual data from db and check if something was changed
end

そのため、ユーザーがデータを編集したかどうかを比較するために、強力なパラメーターにアクセスするためのコントローラー オブジェクトを取得する必要があります。これがこれを行うための最良の方法/プラクティスであるかどうかはわかりません。もっと良い方法があれば、知りたいです。しかし、データ ログを必要とする多数のコントローラーでこのプロセスを呼び出す必要があります。
お時間をありがとうございました。下手な英語で申し訳ありません..

4

1 に答える 1