При создании активной записи в базе данных она создается без первичного ключа. - PullRequest
0 голосов
/ 27 ноября 2018

Я создаю объект активной записи следующим образом:

shop = ShopifyShop.create(shopify_domain: shopDomain, primary_domain: shopObj.domain, shopify_token: token, user_id: userId) if !shop

Когда создается объект с таким же primary_domain, запись не сохраняется в базе данных, а объект создается безпервичный ключ

поэтому, когда я делаю:

p shop

я получаю #<ShopifyShop id: nil, shopify_domain: "***.myshopify.com", shopify_token: "***", created_at: nil, updated_at: nil, user_id: 45, primary_domain: "***.myshopify.com">

Я проверил, было ли это связано с ограничением, возможно, но есть только первичный ключограничение в таблице, я не уверен, что является причиной этого.

Кто-нибудь знает, что может происходить?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Я почти уверен, что ваш объект просто недействителен и поэтому не был сохранен в базе данных.Вот почему у него нет id.Вы можете проверить наличие ошибок:

shop.errors.any?
shop.errors.messages # => display errors

Если вы хотите вызвать ошибку RecordInvalid, если проверки не пройдены, используйте create! вместо create.

0 голосов
/ 27 ноября 2018

Одна из проверок вашего магазина привела к тому, что ваш объект не был сохранен.create возвращает объект независимо от того, был ли он сохранен.

Для дальнейшего изучения:

shop.persisted?
# => false
shop.errors
# => will display errors of your object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...