2017-04-16 1 views
-1
class TestController < ApplicationController 
    def create_order 

    end 
end 


class Model < ActiveRecord::Base 

    before_create :my_callback 

    def my_callback 
    if this_value != test_value 
     raise ActiveRecord::RecordInvalid 
    end 

    rescue Exception => exception 
     false 
    end 
end 

Ici, j'ai un contrôleur et un modèle, lorsque la demande arrive à cette fonction create_order, je vérifie deux valeurs sont identiques ou pas avec callback before_create, voici le problème que je veux soulever exception dans le modèle et attraper que dans le contrôleur pour les montrer en vue, j'ai essayé de cette façon et cela va revenir en arrière mais il ne m'a donné aucune exception dans le contrôleur, est-il possible de le faire?Gestion des exceptions avec rappel dans les rails

Répondre

0

Utilisation validations pour cela:

validates :this_value, inclusion: { in: [test_value] } 

ou si test_value est une méthode:

validates :this_value, inclusion: { in: proc { call_your_method_here } }