J'essaye d'enrouler une action dans une transaction, mais la transaction ne fonctionne pas sauf si une exception est levée. Donc, en gros, j'essaie de faire une erreur, mais continuez sur la page avec 500. Voici ce que je fais actuellement.Soulever une exception mais pas un code 500 - Rails
def update
resource.transaction do
super do |user|
if membership_params.present?
ToggleAlertEmails.perform(user: current_user, params: membership_params)
end
if user.errors[:current_password].present?
raise IncorrectError
render :edit
end
end
end
end
qui soulèvent cette erreur RegistrationsController::IncorrectError:
Cela semble correct, mais je peux rendre tout simplement l'action d'édition au lieu de 500 pages?
que je pouvais faire quelque chose comme ça - 'render: modifier, statut: 200'? – Bitwise
@Bitwise Bien sûr, 'render' accepte généralement cinq options:: content_type,: layout,: location,: status,: formats. – fangxing
Où irait ce code? dans un modèle? – Bitwise