• # Comment fonctionne le patch 3.2

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Injection SQL sur toutes les versions de Ruby on Rails. Évalué à 2.

    Hello!

    Je viens de regarder le patch 3.2 et j'ai vu qu'il consistait en la modification d'une ligne (le reste est l'ajout de tests) :

    - options = arguments.extract_options!
    + options = if arguments.length > attribute_names.size
    + arguments.extract_options!
    + else
    + {}
    + end
    +
    
    

    Je ne connais pas ruby, mais je ne comprends pas ce que la condition vérifie, pouvez-vous m'éclairer ? Pour moi, la condition devrait être comme ceci plutôt :

    - options = arguments.extract_options!
    + options = if arguments.length <= attribute_names.size #donc si le nombre d'argument est inférieur ou égale au nombre d'attribut on accepte les arguments
    + arguments.extract_options!
    + else
    + {}
    + end
    +