・ Rails 6.0.3.2 ・ Mysql Ver 14.14 Distrib 5.6.47 ・ Osx10.15
L'apprentissage de Contoller avec Rails apprendra les méthodes d'enregistrement actives telles que new, save, create, destroy.
A ce moment-là, j'ai appris que la méthode de création est new + save`.
En tant que débutant, j'ai mal compris que "then create est plus simple et plus facile à voir, donc j'utilise Kochi!", Et quand j'ai créé ma propre application, parfois cela ne fonctionnait pas bien avec create. J'écrirai ce que j'ai appris à ce moment-là.
En bref, quand utiliser new + save sans utiliser create method dans create action?
Par exemple, la description dans le contrôleur
def create
@message = Message.create(message_params)
end
ne pas
def create
@message = Messages.new(message_params)
@message.save
end
ici.
def create
@message = Messages.new(message_params)
if @message.save
redirect_to(Chemin applicable)
else
flash.now[:alert] = 'Veuillez saisir un message.'
render :index
end
end
Si vous utilisez create lorsque vous utilisez une instruction conditionnelle comme décrit ci-dessus, l'instruction conditionnelle ne fonctionne pas bien et l'opération ne fonctionne pas bien lorsque la création échoue après ʻelse`.
En outre, il est plus facile de voir s'il existe de nombreuses descriptions.
Si vous décrivez new, vous pouvez utiliser la méthode d'instance créée à ce moment-là avec render. Bien que ce ne soit pas dans l'exemple ci-dessus, il est préférable de décrire new même si vous voulez hériter de: id et l'utiliser.
Je me demandais en quoi ils seraient différents si on disait qu'ils avaient le même sens, et j'ai fait quelques erreurs, alors je les ai écrites ici.
Recommended Posts