2015-07-30 3 views
0

Привет Я хотел был бы иметь возможность определить отношения has_one/belongs_to в Rails-консоли. Я использую Rails 4 (если это имеет значение). Прочитав некоторые другие темы, я попробовал несколько вещей, но сначала мои модели.Как использовать консоль Rails для определения отношения между has_one/belongs_to

class Appointment < ActiveRecord::Base 
    belongs_to :patient 
end 

и

class Patient < ActiveRecord::Base 
    has_one :appointments 
end 

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

a = Appointment.create(date: "9/9/15", patient_id: 2) 

=> ActiveRecord::UnknownAttributeError: unknown attribute 'patient_id' for Appointment. 

и

a.patient = s //after defining both (s being patient) 
=> ActiveModel::MissingAttributeError: can't write unknown attribute `patient_id` 

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

ответ

0

Ошибка указывает, что вы не указали столбец patient_id в таблице appointments.

Вам необходимо ввести эту колонку через migration, а не через консоль Rails. Консоль Rails представляет собой среду REPL с доступом к вашему слою модели, она не имеет ничего общего с тем, что вы пытаетесь достичь.

+0

хорошо, спасибо - сделаем! – HolyMoly

+0

, снова посмотрев на файлы моих инструкторов, я вижу, что он действительно создал внешний ключ в своей схеме. – HolyMoly

Смежные вопросы