私はArtcilesController
が次のような作成アクションを持っているとします。私はrespond_toブロックをどこに置くべきですか?
def create
@article = Article.new(params[:article])
respond_to do |format|
if @article.save
format.html { redirect_to(@article, :notice => "Article created") }
format.json { render :show }
else
format.html { render :new }
format.json { render(:json => { :errors => @article.errors }, :status => :not_acceptable) }
end
end
end
同じアクションは、以下のように書くことができる:最初の例ではrespond_toブロックの内部と第二内であれば他のブロックが存在すること
def create
@article = Article.new(params[:article])
if @article.save
respond_to do |format|
format.html { redirect_to(@article, :notice => "Article created") }
format.json { render :show }
end
else
respond_to do |format|
format.html { render :new }
format.json { render(:json => { :errors => @article.errors }, :status => :not_acceptable) }
end
end
end
注意、内の2つのrespond_toブロックが存在します単一のif elseブロックの
私は他のものよりも1つを優先してください。はいの場合、理由は何ですか?それとも、スタイルを選んでそれに固執するのですか?
私はアップしました。 @ article.saveを引き出し、結果を変数に格納することは、私が別のやり方で行うことだけです。もっとドライ – ffoeg