J'ai les paramètres de création suivants qui sont passés pour créer!comment retourner l'erreur exacte de créer des paramètres s'il manque
def create_params
params.permit(
:param1,
:param2,
:param3,
:param4,
:param5
)
end
Contrôleur
def create
something = Model.create!(create_params)
end
Toutes les colonnes de la table ne sont pas NULL. Donc, si je passe pas un des param je reçois quelque chose comme erreur ci-dessous
Mysql2::Error: Field 'col5' doesn't have a default value: INSERT INTO `table` (`col1`, `col2`, `col3`, `col4`) VALUES ('value1', 'value2, 'value3', 'value4')
Mais son ne donnant pas le message d'erreur exact. Comment puis-je le renvoyer un message d'erreur valide? Avoir des validations au niveau de la base de données comme NOT NULL
est une bonne pratique.
'Model.create' essayera de créer un enregistrement dans la base de données. La meilleure façon de le faire est 'model = Model.new (create_params)'. Alors 'model.save' a du sens. –
donc si j'ajoute que valide le modèle de vérification et si j'ajoute une action de mise à jour dans le contrôleur avec create et pour la mise à jour tous les params ne sont pas nécessaires alors cela fonctionnerait-il encore? –
@Nicholasjames oui, c'est possible: http://guides.rubyonrails.org/active_record_validations.html#on – unkmas