・ 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