Ich habe ein ziemlich einfaches Formular.Format Validierung Regex auf Modell wird ausgelöst, wenn der Wert leer ist, wenn es nicht
<%= form_for([@category_item_value], url: create_category_item_value_path(key_id: item_key.id), method: :post) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :stat %>
<%= f.text_field :value, :value => item_key.value %>
<%= f.hidden_field :key_type, :value => 'item-edit-request' %>
<%= f.submit "Submit" %>
Mit diesem Modell
validates :key, length: { maximum: 255 },
exclusion: { in: %w(create edit new update), message: "%{value} cant be taken." },
format: { with: /\A[a-zA-Z0-9_-]+\z/, message: "only allows letters, numbers and '-'" }
validates :value, length: { maximum: 65000 }
Als ich senden Sie das Formular der key
Wert leer oder null in der DB bleibt, weil es später in hinzugefügt wird. Problem ist, dass ich das Formular nicht einreichen kann, weil die Formatvalidierung auf Schlüssel mich mit der Fehlermeldung "nur Buchstaben, Zahlen und '-'" stoppt.
Warum tut es dies, ich habe keine presence: :true
Validierung auf key
, aber ich kann es nicht lassen wegen der Formatüberprüfung leer sein. Das war nie ein Problem und die Form funktionierte gut, es war nur bis vor kurzem, dass ich es noch einmal durchging und merkte, dass das Formular nicht eingereicht wurde.
Warum würde dies beginnen und wie kann ich es beheben?
Letzteres ist expliziter , MEINER BESCHEIDENEN MEINUNG NACH. – mudasobwa
Ich stimme zu, OTOH Ich finde die erste Option leichter lesbar (einfacher auf den ersten Blick zu erkennen). – BoraMa
Kann ich beide zulassen NULL und erlauben leer? – Rob