Beim Schreiben der "create" -Methode für ein Objekt in einer Ruby on Rails-App habe ich zwei Methoden verwendet. Ich würde gerne eine Methode für einen saubereren und konsistenteren Code verwenden. Ich werde die beiden folgenden Methoden auflisten. Weiß jemand, ob einer besser ist als der andere? Wenn ja warum?Wenn Sie ein Objekt in Ruby on Rails erstellen, welche Methode bevorzugen Sie und warum?
Methode 1:
def create1
# is this unsecure? should we grab user_id from the session
params[:venue]['user_id'] = params[:user_id]
begin
venue = Venue.create(params[:venue])
@user_venues = @user.venues
render :partial => 'venue_select_box', :success => true, :status => :ok
rescue ActiveRecord::RecordInvalid
render :text => 'Put errors in here', :success => false, :status => :unprocessable_entity
end
end
Methode 2:
def create2
# is this unsecure? should we grab user_id from the session
params[:venue]['user_id'] = params[:user_id]
venue = Venue.new(params[:venue])
if venue.save
@user_venues = @user.venues
render :partial => 'venue_select_box', :success => true, :status => :ok
else
render :text => 'Put errors in here', :success => false, :status => :unprocessable_entity
end
end
Ich denke, du meinst "create!" nicht "create" in Methode 1. "create" löst keine Ausnahme aus; Bei Validierungsfehlern wird einfach false zurückgegeben. –
Sie sind richtig, danke, dass Sie darauf hingewiesen haben – Tony