いつもお世話になっております。
以下のようにXxxxxxモデルのyyyカラムが変更された場合にbefore_saveが呼ばれるのですが、その際に現在のuseridを渡し、useridでそのユーザーを特定し、その値の一部を別モデルに書き込むという流れを行いたいと考えております。
この際にsessionやparamsなどに値を入れたとしてもモデル側で呼び出すことができず、このbefore_save内に渡すことはできないのかとググってみたのですが、うまく見つからず……。
参考になるサイトでも構いませんので、適切な方法をご教示いただけますと幸いです。
よろしくお願いいたします。
ruby
1# コントローラ 2def update 3 Xxxxxx.update(aaa: aaa, yyy: yyy) 4end 5 6 7# モデル 8class Xxxxxx < ApplicationRecord 9 10 before_update do 11 if self.yyy 12 # この時にユーザーを検索するidをコントローラ側から渡したい 13 id = 受け取った値 14 user = User.find_by(id: id) 15 Zzzz.create.(bbb: user.name, ccc: user.age,....) 16 end 17 end 18end 19
環境
Amazon Linux release 2 (Karoo)
Rails 5.2.3
Ruby version: 2.6.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/25 11:34
2020/09/25 11:49
2020/09/25 12:40 編集