0
私の資産モデル内でcurrent_user.id(devise)を使用しようとしましたが、current_user.idだけが使用できません。自分の資産モデルでcurrent_user.idを使用できるようにするにはどうすればよいですか? (何とか資産モデルにユーザーを渡す?)あなたは、あなたのモデルの範囲内でコールバックチェーンでcurrent_user
を使用することはできません初心者:カスタムメソッドのアセットモデルにユーザーを渡す方法は?
after_save :set_photo
def set_photo
user = User.find_by_id(1)
# user = User.find_by_id(current_user.id) <-- should be this
user.has_photo = true
user.save
end
モデル内の現在のユーザーにアクセスすることはできません。これは、deviseによって提供されるヘルパーメソッドです。私が 'モデルでcurrent_userを使用して' googleした場合、複数のスレッドを実装するソリューションが見つかりますが、特にARの接続プールと衝突する可能性があるActiveRecordを使用している場合は、 – prasvin
Btw、あなたがしようとしていることを詳しく説明できますか?資産オブジェクトが保存されている場合は、現在のユーザに対して 'has_photo'フィールドをtrueに設定したいと思います。あなたはAsset forを使用していますか、それはユーザーに関連付けられていますか? 'assets#create'と' assets#update'の単純な単純な解決法を望むならば、単に 'current_user'のための' has_photo'フィールドを更新することができます(あなたが望むなら、あなたはインスタンスメソッドを作成することができます)。または更新が成功しました。 – prasvin
アセットはUserに属している可能性があります。コントローラーの作成と更新のアクションを使用するだけです。アセットはアタッチされた画像です。アセットが削除された場合、アセットが更新アクションでどのように検出されますか? thx – Rubytastic