【发布时间】:2016-04-20 17:51:58
【问题描述】:
我有以下型号
users (id, name, ...)
authorizations (id, provider, provider_uid, token, user_id, ...)
用户有_许多授权
@user = User.new(first_name: facebook_client.first_name,
last_name: facebook_client.last_name,
email: facebook_client.email,
bio: facebook_client.bio,
date_of_birth: facebook_client.birthday,
gender: facebook_client.gender,
location: facebook_client.location)
@user.authorizations.build(
provider: 'facebook',
provider_uid: facebook_client.user_id,
oauth_token: facebook_user_token,
social_account: SocialAccount.friendly.find('facebook'))
我有一个验证
validates :user_id, presence: true
由于上述原因,我无法保存@user.save
我无法理解为什么当我通过@user.authorizations.build 构建它时它不应该保存
【问题讨论】:
-
因为
@user.id是nil,所以没有持久化。 -
@Зелёный 但未保存。当我保存 [at]user 时,它会保存用户,然后它会保存嵌套模型,因此它会自动保存 id 对吗?
标签: ruby-on-rails validation ruby-on-rails-4