Informationen zur ActiveRecord-Methode create
, mit der ein neuer Datensatz erstellt wird.
Ich habe den Unterschied zwischen "create" und "create" kennengelernt, also werde ich es erklären.
Was ist der Unterschied mit und ohne !
?
Fazit "Ob eine Ausnahme ausgelöst werden soll"
.
Es ist jedoch schwierig, die "Ausnahme" zu verstehen.
Um den tatsächlich auftretenden Unterschied zu erklären, ändert sich mit oder ohne !
`` Wird dieser rote Bildschirm angezeigt? "
Wenn der Prozess fehlschlägt.
create!
Wenn Sie create!
Festlegen, wird eine ActiveRecord :: RecordInvalid-Ausnahme wie unten gezeigt auftreten und der vertraute Bildschirm wird angezeigt.
Folgen wir der eigentlichen Operation.
Der diesmal verwendete Code lautet wie folgt (* Die Beschreibung der Erstellungsaktion wird nicht empfohlen).
app/config/routes.rb
Rails.application.routes.draw do
root to: 'comments#index'
resources :comments, only: [:create]
end
app/controllers/comments_controller.rb
class CommentsController < ApplicationController
def index
@comments = Comment.all.order("created_at DESC")
@comment = Comment.new
end
def create
#Das Schreiben dieser Erstellungsaktion ist veraltet.
@comment = Comment.create!(comment_params)
redirect_to root_path
end
private
def comment_params
params.require(:comment).permit(:text)
end
end
create (new + save)
create
app/models/comment.rb
class Comment < ApplicationRecord
validates :text, presence: true
end
Der Fehlerbildschirm wurde fest angezeigt.
!
Senden Sie das Formular für die unten stehende Erstellungsaktion.
app/controllers/comments_controller.rb
def create
@comment = Comment.create(comment_params) # !Ausschließen
redirect_to root_path
end
Der Fehlerbildschirm wird aufgrund der Ausnahmebehandlung nicht angezeigt, und Sie werden umgeleitet.
!
Von create!
Ist eine Beschreibung, die eine Ausnahme auslöst!
Gibt, wird die nächste Umleitung so ausgeführt, wie sie ist, ohne gespeichert zu werden.Recommended Posts