Rails:first_or_create 不工作

Rails: first_or_create not working

first_or_create 的问题很奇怪。考虑以下方法:

def self.store(session)
    shop = self.first_or_create(shopify_domain: session.url, shopify_token: session.token)

    binding.pry

    shop.save!
    shop.shopify_domain
  end

当我窥探这个方法时,我可以调用session.url得到domain2.myshopify.comsession.token得到22222

但是当我调用 shop 时,我得到了 shopify_domain: domain1.myshopify.comshopify_token: 11111 的商店。

知道为什么会这样吗?好像很奇怪。

shop = self.where(shopify_domain: session.url, shopify_token: session.token).first_or_create(shopify_domain: session.url, shopify_token: session.token)

一般来说,您只是获得了第一个。比如调用 .all.first