83 votes

Expressions régulières avec validations dans RoR 4

Il y a le code suivant :

class Product < ActiveRecord::Base
  validates :title, :description, :image_url, presence: true
  validates :price, numericality: {greater_than_or_equal_to: 0.01}
  validates :title, uniqueness: true
  validates :image_url, allow_blank: true, format: {
      with: %r{\.(gif|jpg|png)$}i,
      message: 'URL must point to GIT/JPG/PNG pictures'
  }
end

Cela fonctionne, mais lorsque j'essaie de le tester en utilisant "rake test", je reçois ce message :

rake aborted!
The provided regular expression is using multiline anchors (^ or $), which may present a security risk. Did you mean to use \A and \z, or forgot to add the :multiline => true option?

Qu'est-ce que cela signifie ? Comment puis-je le réparer ?

-1voto

max Points 1

Si Ruby veut voir \z au lieu de la $ le signe du symbole, pour la sécurité, vous devez le lui donner, alors le code ressemblerait à ceci :

validates :image_url, allow_blank: true, format: {with: %r{\.(gif|jpg|png)\z}i, message: 'URL must point to GIF, JPG, PNG.'}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X