Не могу понять это.Я использую Postgres для приложения на Ruby, и моя схема выглядит следующим образом:
ActiveRecord::Schema.define(version: 20180518200146) do
create_table "amazons", force: :cascade do |t|
t.text "auth_token"
t.text "marketplace"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "shop_id"
t.boolean "three_speed"
t.text "seller_id"
t.string "shipping_countries", array: true
end
create_table "shops", force: :cascade do |t|
t.string "shopify_domain", null: false
t.string "shopify_token", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "paid", default: false
t.boolean "setup", default: false
t.string "carrier_id"
t.index ["shopify_domain"], name: "index_shops_on_shopify_domain", unique: true
end
add_foreign_key "amazons", "shops"
end
Я удалил shopify_domain
из таблицы Amazons
.Но я запустил эту миграцию, и, как вы можете видеть в моей схеме, она прошла.
Однако я пытаюсь create
создать новую запись и получаю следующее сообщение об ошибке: NoMethodError (undefined method shopify_domain for #<Amazon:0x000000041fb9c8>
I 'm создаем новую запись Amazon
, определяя ее следующим образом:
current_shop.amazons.create(
marketplace: marketplace,
seller_id: seller_id,
auth_token: auth_token,
shipping_countries: countries,
shop_id: current_shop.id)
, где current_shop
- метод, который получает текущий магазин из сеанса.Это работает отлично.
Куда я сбился с пути?
РЕДАКТИРОВАТЬ: Я пошел и проверил PG, чтобы убедиться, и поле не их тоже.Вот что PG имеет:
id | bigint | not null default nextval('amazons_id_seq'::regclass)
auth_token | text |
marketplace | text |
created_at | timestamp without time zone | not null
updated_at | timestamp without time zone | not null
shop_id | integer |
three_speed | boolean |
seller_id | text |
shipping_countries | character varying[] |
РЕДАКТИРОВАТЬ: Вот модель Amazon
class Amazon < ActiveRecord::Base
include ShopifyApp::SessionStorage
belongs_to :shop
end
И затем это все сообщение об ошибке:
NoMethodError (undefined method `shopify_domain' for #
<Amazon:0x000000041fb9c8>
Did you mean? shop_id_change):
app/controllers/concerns/amazon_creds_concern.rb:55:in `save_amazon_creds'
app/controllers/concerns/amazon_creds_concern.rb:23:in `create_amazon_client'
app/controllers/amazon_creds_controller.rb:9:in `amazon_credentials_check'
И затем строки кода, соответствующие сообщению об ошибке, начиная снизу вверх: app/controllers/amazon_creds_controller.rb:9:in amazon_credentials_check
render json: {amazon_creds_status: create_amazon_client(marketplace, seller_id, auth_token, countries), countries: countries.blank?}
Затем app/controllers/concerns/amazon_creds_concern.rb:23:in
save_amazon_creds(marketplace, seller_id, auth_token, countries)
Наконец app/controllers/concerns/amazon_creds_concern.rb:55:in
current_shop.amazons.create(
marketplace: marketplace,
seller_id: seller_id,
auth_token: auth_token,
shipping_countries: countries,
shop_id: current_shop.id)