我使用 devise_invitable (2.0.6)
邀请已接受?在 after_invitation_accepted CALLBACK 中返回 FALSE,但是当我在这里暂停并检查 Rails 控制台时,它给了我 true 的 Invitation_accepted ?
用户.rb
after_invitation_accepted :create_something
def create_something
create_service unless invitation_sent_at? && !invitation_accepted?
end
这里,invitation_accepted?在这个回调中是 false,但是,当我在这里暂停并检查 Rails 控制台时,它给了我 true
我错过了什么吗?
invitation_accepted?
上方有注释:
# Verifies whether a user accepted an invitation (false when user is accepting it)
def invitation_accepted?
!accepting_invitation? && invitation_accepted_at.present?
end
这意味着,当用户接受邀请时,
invitation_accepted?
不是true
,而是在用户接受邀请之后。
accept_invitation!
的实现时,我们发现在接受邀请之前的方法中@accepting_invitation
被设置为true
,但在数据库中的记录之后并没有设置为false
已更新。
这意味着只有从数据库重新加载用户后
invitation_accepted?
才会返回true
。