前提・実現したいこと
ユーザー管理の実装をしています。
ログインする情報とは別に公開情報(profile)が別のテーブルとして存在します。
userのアソシエーションの設定で、has_oneを設定しているのですが、
rails c
で新たなインスタンスを.save
すると登録されてしまいます。
has_one
としても、紐づきは1つだけにするようなバリデーションが必要なのでしょうか。
uniqueとか使用する?
該当のソースコード
rb
1# user.rb 2class User < ApplicationRecord 3 has_one :profile 4end 5
rb
1# profile.rb 2class Profile < ApplicationRecord 3 belongs_to :user 4end 5
試したこと
rails c
で@profile = Profile.new(nickname:"xxx",user_id:1)
とすると、
重複していても保存されてしまいます。
profileのレコードが作成されるのは、ユーザー作成時のみなので、
バリデーションかけなくても、1度しか保存されない(つまり、2つのレコードが紐づくことはない)
と、思っているのですが、
有識者の方々はここらへんどう処理されているか気になります。
なので、こちらで質問してみました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/31 06:20