respond_to do |format|
format.js # actually means: if the client ask for js -> return file.js
end
js
ここでは、コントローラー メソッドが応答として返す MIME タイプを指定します。
デフォルトの Rails MIME タイプ。
あなたも試してみるとformat.yaml
:
respond_to do |format|
format.js
format.yaml
end
これは、コントローラーが返されるか、クライアント側の要求に応じて返されることを意味しyml
ますjs
。
{}
ruby に関して言えば、ブロックです。何も指定しない場合、Rails は app/views/[コントローラー名]/[コントローラー メソッド名].[html/js/...] からデフォルト ファイルをレンダリングしようとします。
# app/controllers/some_controller.rb
def hello
respond_to do |format|
format.js
end
end
を探します/app/views/some/hello.js.erb
。// 少なくとも Rails v. 2.3 では。
ブロックを指定する場合:
respond_to do |format|
# that will mean to send a javascript code to client-side;
format.js { render
# raw javascript to be executed on client-side
"alert('Hello Rails');",
# send HTTP response code on header
:status => 404, # page not found
# load /app/views/your-controller/different_action.js.erb
:action => "different_action",
# send json file with @line_item variable as json
:json => @line_item,
:file => filename,
:text => "OK",
# the :location option to set the HTTP Location header
:location => path_to_controller_method_url(argument)
}
end