Я пытаюсь создать связь между двумя моделями (Submissions & Agent Activity), с помощью которой каждый агент может регистрировать активность в отношении отправки, не изменяя саму фактическую запись отправки.
Это мои rb-файлы, и я считаю, что они настроены правильно:
class Submission < ApplicationRecord
belongs_to :user, :optional => true
belongs_to :location, :optional => true
has_many :agent_activities
end
class AgentActivity < ApplicationRecord
belongs_to :submission, :optional => true #has submission_id foreign key in table
belongs_to :agent, :optional => true #has agant_id foreign key in
table
end
Однако я теряюсь, когда дело доходит до отображения этой ассоциации в контроллере. В настоящее время мой код выглядит так:
@submissions = Submission.where(:Desired_Location => current_agent.Company_Business_Location).pluck(:AgentActivity)
Однако я получаю эту ошибку, когда делаю это
PG::UndefinedColumn: ERROR: column "AgentActivity" does not exist
LINE 1: SELECT "AgentActivity" FROM "submissions" WHERE
"submissions... ^ : SELECT "AgentActivity" FROM "submissions" WHERE
"submissions"."Desired_Location" = $1
Кроме того, когда я запускаю
Submission.where(:Desired_Location =>
current_agent.Company_Business_Location).map(&:AgentActivity)
Я получаю эту ошибку:
undefined method `AgentActivity' for #<Submission:0x007fc78601e168>
Did you mean? agent_activities
И когда я бегу:
AgentActivity.joins(:submission).where('submission.Desired_Location'
=> current_agent.Company_Business_Location)
Я получаю эту ошибку:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table
"submission"
LINE 1: ..."."id" = "agent_activities"."submission_id" WHERE
"submissio...
^
: SELECT "agent_activities".* FROM "agent_activities" INNER JOIN
"submissions" ON "submissions"."id" =
"agent_activities"."submission_id" WHERE
"submission"."Desired_Location" = $1