У меня есть таблица пользователя и рецензента.Настройка ассоциации для has_one, которая является самореферентной
Рецензент треков user_id и reviewer_id
теперь моя ассоциация настроена так:
# reviewer
has_one :reviewer
accepts_nested_attributes_for :reviewer
has_many :active_managements, class_name: 'Reviewer',
foreign_key: 'reviewer_id',
dependent: :destroy
has_one :my_reviewer, through: :reviewer, source: :user
что я пытаюсь настроить, что пользователь может иметь один рецензент, но может пересмотреть многие.
Теперь я пытаюсь сделать так, что я могу сделать
current_user.my_reviewer.first_name
f.ex и получить первое имя рецензента текущего пользователя. Однако в настоящее время
has_one :my_reviewer, through: :reviewer, source: :user
просто подходит к вам. Я думаю, что это связано с источником. Если я пытаюсь изменить его на: рецензент я получаю эту ошибку:
Could not find the source association(s) :reviewer in model Reviewer. Try 'has_many :my_reviewer, :through => :reviewer, :source => <name>'. Is it one of user or reviewer_user?
и если я изменю его reviewer_user
Я получаю эту ошибку:
PG::UndefinedColumn: ERROR: column reviewers.reviewer_user_id does not exist
LINE 1: ... "users" INNER JOIN "reviewers" ON "users"."id" = "reviewers...
^
: SELECT "users".* FROM "users" INNER JOIN "reviewers" ON "users"."id" = "reviewers"."reviewer_user_id" WHERE "reviewers"."user_id" = $1 LIMIT 1
вам нужно has_many: через я думаю, –
я действительно есть, что только has_one –
@ArupRakshit что только получает объект рецензента –