我有兩個型號Rails的find_or_initialize_by與加入的ActiveRecord :: AssociationTypeMismatch
users (id, name, ...)
authorizations (id, provider, provider_uid, user_id,...)
用戶的has_many授權
現在,當我有通過Facebook登錄我需要檢查provider_uid
預置如果不是創建一個新的。
user = User.joins(:authorizations).find_or_initialize_by(
authorizations: {
provider: 'facebook',
provider_uid: provider_uid
}
)
錯誤
的ActiveRecord :: AssociationTypeMismatch - 授權(#70336918074440) 預期,得到了陣列(#70336893054160):
看來你必須提供單個對象,而且你正在提供數組 – Thorin
什麼是'influencer_authorizations'? – RSB
對不起'授權'改變了這個問題。簡化了模型,使其變得簡單 –