Проблемы с тестом Rails 6 - PullRequest
0 голосов
/ 28 января 2020

Я использую ruby 2.7 и Rails версии 6.0.2.1. Когда я пытаюсь протестировать свою модель, я получаю это сообщение

Error:
OfferTest#test_valid_offer:
DRb::DRbRemoteError: PG::UndefinedTable: ERROR:  relation "views" does not exist
LINE 8:  WHERE a.attrelid = '"views"'::regclass
                            ^
 (ActiveRecord::StatementInvalid)

rails test test/models/offer_test.rb:4

Это мой файл схемы:

ActiveRecord::Schema.define(version: 2020_01_20_105655) do

  # These are extensions that must be enabled in order to support this database
  enable_extension "plpgsql"

  create_table "offers", force: :cascade do |t|
    t.string "city"
    t.string "area"
    t.string "address"
    t.string "contact_person"
    t.string "contact_person_phone"
    t.string "denomination"
    t.string "category"
    t.string "typology"
    t.integer "guests"
    t.integer "rooms"
    t.boolean "lift"
    t.decimal "expense"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
  end

  create_table "requests", force: :cascade do |t|
    t.string "name"
    t.string "last_name"
    t.string "address"
    t.decimal "budget"
    t.date "date_of_request"
    t.string "document_id"
    t.string "phone"
    t.string "residential_address"
    t.date "date_of_birth"
    t.string "notes"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
  end

  create_table "users", force: :cascade do |t|
    t.string "name", null: false
    t.string "last_name", null: false
    t.string "email", default: "", null: false
    t.string "encrypted_password", default: "", null: false
    t.string "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.index ["email"], name: "index_users_on_email", unique: true
    t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
  end

end

На данный момент у меня есть 3 таблицы. Я тестирую модель предложения, но у меня странное поведение. Это код моей тестовой модели

require 'test_helper'

class OfferTest < ActiveSupport::TestCase
  test "valid offer" do
    offer = Offer.new(city: "Rome", area: "Zona Sud", address: "Via Roma")
  end
end

Я уже запустил rails db: test: prepare, но не могу решить эту проблему.

1 Ответ

0 голосов
/ 28 января 2020

Моя первоначальная мысль заключается в том, что какой-то драгоценный камень вводит поведение в ваши модели.

Что-то ожидает "представления" таблицы. Имя views намекает либо на драгоценный камень, использующий базу данных views для виртуализации таблиц, либо на другой драгоценный камень, который работает в домене с views: например, драгоценный камень для статистики (Заказ был просмотрен 21 раз: имеет 21 просмотров ).

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

Если это гем, этот гем, скорее всего, имеет некоторые миграции, которые вам нужны установить и запустить:

bundle exec rake railties:install:migrations
bundle exec rake db:migrate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...