conversation_participations
является либо UPDATE
, либо INSERT
. Нет никакого определения, пока код на самом деле не работает. И даже в некоторых базах данных может отсутствовать поддержка нескольких вставок.
То, что вы хотите, звучит как транзакция. Транзакция может быть создана в Rails с использованием метода transaction
любой модели, которая принимает блок. (И на самом деле не имеет значения, какую модель вы вызываете, это относится к любым операциям базы данных в этом блоке.)
В основном:
Conversation.transaction do
@conversation = Conversation.create(......)
# ...etc...
end
Вы хотите убедиться, что ваша база данных поддерживает транзакции. Вы не указали, какую систему баз данных вы используете, но MySQL, например, превращает транзакции в no-ops для бэкэнда MyISAM. Если вы используете MySQL, убедитесь, что ваши таблицы InnoDB. (Я считаю, что если ваши таблицы были созданы с использованием Rails, они будут созданы, но лучше всего дважды проверить.)