[RUBY] [Rails] Différence entre la méthode de création et la méthode nouvelle + sauvegarde

environnement

・ Rails 6.0.3.2 ・ Mysql Ver 14.14 Distrib 5.6.47 ・ Osx10.15

Synopsis

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à.

Pourquoi se diviser en nouveau + enregistrer?

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.

① Lors de l'écriture d'une instruction conditionnelle en utilisant if etc.

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.

② Lors de l'utilisation du rendu

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.

finalement

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

[Rails] Différence entre la méthode de création et la méthode nouvelle + sauvegarde
[Rails] J'ai étudié la différence entre une nouvelle méthode, une méthode de sauvegarde, une méthode de construction et une méthode de création.
[Rails / Active Record] À propos de la différence entre créer et créer!
Différence entre nouveau et créer dans le contrôleur d'action Rais
Différence entre la méthode d'instance et la méthode de classe
Différence entre l'opérateur == et la méthode eqals
[Rails] Différence entre find et find_by
[rails] Différence entre redirect_to et render
[Rails] Différence entre redirect_to et render [Débutant]
Différence entre le membre et la collection de rails routes.rb
Différence entre vh et%
Différence entre i ++ et ++ i
[Rails] Quelle est la différence entre la redirection et le rendu?
Différence entre produit et variante
Différence entre redirect_to et render
[Rails] nécessitent une méthode et une méthode d'autorisation
Différence entre redirect_to et render
Différence entre CUI et GUI
Différence entre mockito-core et mockito-all
Différence entre classe et instance
Différence entre l'installation de bundle et de bundle
Différence entre ArrayList et LinkedList
Différence entre render et redirect_to
Différence entre List et ArrayList
Différence entre .bashrc et .bash_profile
Différence entre StringBuilder et StringBuffer
Différence entre render et redirect_to
Quelle est la différence entre une action et une méthode d'instance?
Remplaçons la différence entre == (identité) et méthode equals (équivalence)
[Ruby] Différence entre obtenir et publier
Différence entre interface et classe abstraite
[Rails] Enregistrer l'heure de début et l'heure de fin
[Java] Différence entre Hashmap et HashTable
[Terminal] Différence entre irb et pry
JavaServlet: différence entre executeQuery et executeUpdate
[Ruby] Différence entre is_a? Et instance_of?
Différence approximative entre RSpec et minitest
Créer une nouvelle application avec Rails
Différence entre la variable d'instance et la variable de classe
[JAVA] Différence entre abstrait et interface
Différence entre Stream map et flatMap
[Java] Différence entre array et ArrayList
Différence entre le type primitif et le type de référence
Différence entre string.getByte () et Hex.decodeHex (string.toCharaArray ())
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
[Android] Différence entre finish () et return;
Facile à comprendre la différence entre la méthode d'instance Ruby et la méthode de classe.
[Rails] Différence de comportement entre delegate et has_many-through dans le cas de one-to-one-to-many
Différence entre final et immuable en Java
[Remarque] Différence entre l'installation et la mise à jour du bundle
[Rails6] Créer une nouvelle application avec Rails [Débutant]