Сохранение записей в разных таблицах иногда не удается - PullRequest
0 голосов
/ 11 февраля 2020

Я новичок в Rails, я хочу сохранить запись в таблице A , эта таблица генерирует новый идентификатор, когда создание завершено, мне нужно использовать этот fre sh идентификатор для создания нового запись в таблице B .

В настоящее время мои текущие решения иногда работают, что происходит, когда идентификатор строго необходим для создания записи в таблице B и Я предполагаю, что запись в таблице A еще не сохраняется, когда я пытаюсь создать новую запись в таблице B .

Ниже приведен код , который я использую для выполнения sh описанного выше поведения:

class Resolvers::CreateTask < GraphQL::Function
  argument :name, !types.String
  argument :organization, !types.String

  type Types::TaskType

  def call(_obj, args, ctx)  
    task = Task.create!(
      name: args[:name],
    )

    TaskOrganization.create!(
      task_id: task.id
      organization: args[:organization]
    )
  end
end

1 Ответ

0 голосов
/ 11 февраля 2020

Предполагая, что у вас есть связь один к одному между Task и TaskOrganization, в модели Task добавьте эту строку

accepts_nested_attributes_for :task_organization

Если она умножается один на много, :task_organizations

Затем выполните описанный выше метод call

def call(_obj, args, ctx)  
  task = Task.create!(
    name: args[:name],
    task_organization_attributes: { organization: args[:organization] }
  )
end

Попробуйте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...