Связи Rails has_many через: неинициализированная постоянная ошибка Должен быть простой ответ: Я новичок - PullRequest
0 голосов
/ 20 января 2020

Модели BarberShop (table barber_shops) и Barber (table barbers) все существуют. В rails c после

x = Barber.new and x.include? :barbershop => true. 

Таким образом, связь должна быть установлена ​​правильно. Когда я пытаюсь сохранить, я получаю

Ошибка имени Неинициализированная константа BarberShop :: Barber .

Я знаю, что это более чем просто что я не могу найти. Например, сегодня я узнал с помощью has-many-through-association порядок (в модели) ассоциаций, где должно быть указано a, чтобы получить b - т.е.

has_many :a 
has_many :b, through: :a

Модели такие, как показано ниже -

Barber < ApplicationRecord
  belongs_to :barbershop
  has_many :appointments 
  has_many :customers, through: :appointments


BarberShop < ApplicationRecord 
    has_many :barbers
end 
#schema in db
create_table "barber_shops", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
  end

  create_table "barbers", force: :cascade do |t|
    t.string "name"
    t.string "email"
    t.integer "barbershop_id", null: false
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.index ["barbershop_id"], name: "index_barbers_on_barbershop_id"
  end

1 Ответ

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

В приложении Rails модель BarberShop должна находиться в файле app/models/barber_shop.rb, а модель Barber должна находиться в файле app/model/barber.rb.

Если вы не называете имя если файлы правильно, вы можете получить странное поведение, потому что объекты не загружаются автоматически, как должны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...