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