現在、私のアプリケーションは、認証にDeviseを使用して設計されています。私はそれを持っているので、最初のユーザーがサインアップすると、Accountsテーブルにアカウントが作成され、account_idがUserテーブルに渡されます。また、新しいアカウントが作成されるたびに、そのユーザーが管理者としてタグ付けされるように設定しています。最後に、管理者が新しいユーザーを作成できる場所で機能させています。
私の問題は、新しいユーザーが作成されたときに、これらのユーザーに管理者と同じaccount_idを割り当てて、ユーザーを結び付ける必要があることです。フォームにaccount_idフィールドを追加し、管理者に手動で入力させると、これを行うことができます。私が欲しいのは、これがバックグラウンドで自動化されていることです。
私は多くの品種を試しましたが成功しませんでした。これは、user.rbに次のように入力した失敗した試みの1つです。
before_save :add_account_id_from_parent
def add_account_id_from_parent
return true unless self.users.present?
self.users.update_attribute(:account_id, 1)
end
自動化してそのフィールドに配置できるかどうかを確認するために、数字の「1」を使用しました。
手動で言ったように、すべてが機能しますが、管理者のaccount_idに基づいて、サインアップ時にacocunt_idが自動的に追加されるようにします。