前提・実現したいこと
DBに既存でメールアドレスが登録されているユーザーでも登録を行うことができ、
新しい情報に関してはレコードを更新するということを実現させたいです。
発生している問題・エラーメッセージ
以下がユーザー登録を行なった時に発行されるSQLです。
User Load (1.0ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'example@yahoo.co.jp' LIMIT 1 JobArea Load (1.1ms) SELECT `job_areas`.* FROM `job_areas` WHERE `job_areas`.`id` = 1 LIMIT 1 (0.9ms) BEGIN SQL (1.3ms) UPDATE `users` SET `family_name` = 'あ', `first_name` = 'あ', `birth` = '1968-03-02', `tel` = '00000000000', `confirmed_at` = '2021-06-21 08:36:09', `updated_at` = '2021-06-21 08:36:09' WHERE `users`.`id` = 83
JobArea Load (1.1ms)
の部分をSQL (1.3ms) UPDATE
に入れてレコードの更新対象に加えたいです。
該当のソースコード
#register_controller if @user.id.present? && @user.valid? @user.save render 'complete' return end
#user.rb belongs_to :job_area
#job_area.rb class JobArea < ApplicationRecord has_many :users, dependent: :nullify end
■DBの情報
Userテーブルにfamily_name
、first_name
、birth
、tel
、confirmed_at
、updated_at
のカラムがあります。
job_areaに関しては1:多(User:job_area)です。
■試したこと
リレーション関係でデータ登録が行えないと思い、accepts_nested_attributes_for
をuser.rb
とjob_area
で別々で試してみましたが、解決できませんでした。
どなたか知恵を貸していただけると幸いです。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー