Метод сборки не сохраняет запись - PullRequest
0 голосов
/ 29 мая 2020

agent.rb

has_many :organisations

Organisation.rb

belongs_to :agent

organisations_agent.rb

validates :organisation_id, uniqueness: { scope: [:agent_id] }

organisations_controller.rb

def create
    @organisation = current_agent.organisations.build(organisation_params)
    @organisation.save
end
private

def organisation_params
  params.require(:organisation).permit(:name, :organisation_size, :area, :management)
end

У меня есть следующие ассоциации, как указано выше. Проблема, с которой я столкнулся, заключается в том, что в действии create, когда я пытаюсь создать организацию, я получаю сообщение об ошибке, что agent_id пуст, из-за чего сборка не сохраняет запись. Пожалуйста, помогите мне найти, где я ошибаюсь.

Я добавил binding.pry_remote прямо перед @organisation.save и проверил, что в @organisation значение agent_id равно нулю. Итак, я проверил, есть ли на самом деле current_agent в агенте создания, и да, он работает нормально. Я получаю current_agent в действии создания. Я не знаю, где я ошибаюсь, но agent_id равен нулю в @oganisation в действии create.

params content

 id: nil,
 name: "ABC Org",
 organisation_size: "35",
 area: "USA"
 agent_id: nil,
 management: "DEMO"
...