このようなコードを使用している人を見たことがあります
respond_to do |format|
format.html
format.js
end
template.htmlとtemplate.jsがある場合、これの目的は何ですか。どちらもrespond_toを指定せずにレンダリングできます
このようなコードを使用している人を見たことがあります
respond_to do |format|
format.html
format.js
end
template.htmlとtemplate.jsがある場合、これの目的は何ですか。どちらもrespond_toを指定せずにレンダリングできます
:head
フォーマットオプションはブロックを取ることができるため、ファイルや応答のレンダリングなどのカスタムレンダリングを実行できます。ここでいくつかの例を見てください
スニペットは特別なことは何もしませんが、フォーマットオプションを使用すると、必要に応じて追加のカスタム動作を提供できます。
たとえば@products
、JSONとしてレンダリングする場合は次のようになります。
respond_to do |format|
format.html
format.js { render :json => @products }
end
これは、フォーマットブロックで実行できる多くのことの1つにすぎません。詳細については、Ruby on Railsガイド:レイアウトとレンダリングを参照してください。
フォーマットごとに異なる動作を指定しない場合は、を使用する理由はありませんrespond_to
。テンプレートがある場合は、レールによって自動的に取得されます。このrespond_to
方法は、フォーマットごとに異なる動作が必要な場合に役立ちます。
respond_to do |format|
format.html { render :edit }
format.json { render :json => '{}' }
end