merbのrenderの動作
コードは、 merb-core/lib/merb-core/controller/mixins/responder.rb
/widgets.htmlにアクセスがあった場合
- requestからformat決定
- index.html.erb探して、あったらそのテンプレート使ってレスポンス返す
/widgetsの場合
- fmtがないのでHTTP Accept headerをみる
- _perform_content_negotiationメソッドで
- それが*/*だったらリスト中の最初のフォーマットを使用 :htmlがデフォルト。
- 利用可能なフォーマットがなければ406を返す
fmt決定の仕組みが素敵ですね。@widgetsのto_
Mangoもto_xxxを呼ぶという点では似てるところがありますね