2016-12-08 4 views
0

Я пытаюсь получить доступ к Модели, содержащей два пользователя -> user_1_id и user_2_id. При вызове current_user.modelname он думает, что я пытаюсь вызвать user_id вместо user_1_id или user_2_id. Есть ли способ указать user_1_id или user_2_id вместо user_id при вызове этой модели?Rails - Доступ к user_1 в другой модели

Вот код, который бросает ошибку: модель

current_user.occupied_sessions.each 

Пользователь:

has_many :occupied_sessions , -> {where(trainer_sesses: {confirmation: "occupied"})}, through: :trainer_sesses, :source => :trainer 

Ошибка:

PG::UndefinedColumn: ERROR: column trainer_sesses.user_id does not exist at character 122 HINT: Perhaps you meant to reference the column "trainer_sesses.user_1_id" or the column "trainer_sesses.user_2_id". : SELECT "trainers".* FROM "trainers" INNER JOIN "trainer_sesses" ON "trainers"."id" = "trainer_sesses"."trainer_id" WHERE "trainer_sesses"."user_id" = $1 AND "trainer_sesses"."confirmation" = $2

Любая помощь приветствуется, спасибо!

ответ

0

Я думаю, что по соглашению Rails предполагает, что внешний ключ пользователя в TrainerSesses будет user_id. Поэтому вам придется переписать это поведение. Я точно не знаю, что такое схема вашей базы данных, поэтому я поставил has_many: trainer_sesses, но вы можете изменить ее на то, что должно быть вашей ассоциацией!

Попробуйте что-нибудь подобное в вашей модели пользователя:

has_many :occupied_sessions,-> {where(trainer_sesses: {confirmation: "occupied"})}, through: :trainer_sesses, :source => :trainer, 
has_many :trainer_sesses, :foreign_key => :user_1_id 
+0

Спасибо, что сделали это! –

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