Un article gratuit rédigé par des rails débutants pour les rails débutants. Récemment, les enfants de mon ami se sont précipités pour dire "** ouais !!! ouais !!!", alors la validation pour éliminer la douce idée que ** ouais ** serait intéressante. Le but est de faire bon usage et non de répandre des mots vulgaires dans le monde.
Rails5
--Run rails nouveau
Cette fois, si un contenu contenant un mot (unko) qui ne convient pas à la colonne de contenu du modèle Post est sur le point d'être publié, nous émettrons une erreur de vérification pour protéger le monde de l'amour et de la paix du service et empêcher la propagation de mots sales. ..
ActiveRecord::Schema.define(version: 2018_06_10_125752) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "posts", force: :cascade do |t|
t.string "title", null: false
t.text "content", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.bigint "user_id", null: false
t.index ["user_id"], name: "index_tasks_on_user_id"
end
end
J'enregistrerai la méthode de vérification.
class Ppst < ApplicationRecord
validate :validate_content_not_including_unko
Ceux qui ont étudié les rails dans une certaine mesure ici voudront mettre un tsukkomi. donc! !! !! Non ** valide ** mais ** valide **, qui n'a pas la ** forme de présent singulier à la troisième personne (présent à trois unités) s **! !! !! !! La différence entre les deux semble être soit une validation personnalisée, soit une validation personnelle.
Apparemment, lorsque vous utilisez une validation personnalisée, utilisez ** validate **. .. .. Horrible et difficile à comprendre https://guides.rubyonrails.org/active_record_validations.html#custom-methods
Je vais mettre en œuvre une méthode de vérification
class Ppst < ApplicationRecord
validate :validate_name_not_including_unko
private
def validate_content_not_including_unko
errors.add(:content, 'Si vous écrivez ceci, vous ne pouvez pas! !! !! !!') if content.include?('merde')
end
end
①private Cette méthode n'est jamais utilisée de l'extérieur de cet objet, alors écrivez-la sous private
②validate_content_not_including_unko
Le travail de la méthode de validation est ** "Si vous trouvez une erreur de validation, mettez le contenu de l'erreur dans les erreurs" **.
Par conséquent, lorsque content.include? ('Unko')
contient unko dans la colonne de contenu, le contenu de l'erreur de vérification est inclus dans errors.add.
Tu ne diras plus ce mauvais garçon. .. ..
Il y a une chose que j'ai pensé à travers cet article que cela n'avait rien à voir avec cela.
Au lieu de permettre de publier soudainement en tapant une phrase sur Twitter ou en appuyant sur le bouton de publication, une fois sur l'écran de confirmation, pour faire une pause dans quelque chose comme "Vous dites ou agissez comme si vous étiez séché?" Je me demandais s'il serait possible de réduire le nombre de phrases qui seraient écrites émotionnellement et de répandre une sorte d'effet indésirable.
Aussi, je suis désolé d'avoir eu une série de caca.
Recommended Posts