select_date(date, options, html_options) 追加。

lib/form.js を追加してここにフォーム系のライブラリを置くことにした。

<label for="birthday-year">Birthday</label>
<div>
<%= select_date(new Date("1970/01/01"), {
      "include_blank" : true
   }, {
      "name" : "birthday"
   }) %>
</div>

こんな感じでRailsのselect_dateと同じ動きをします。

というか、CouchDB/CouchAppコンビネーションの最大の欠点は、せっかくshow機能が追加されたのに、サーバーサイドでDocumentとHTML Formをマッピングするライブラリが備わっていないので、フォームの生成がすごく大変。showのいいところは req.userCtx を使ってアクセス制御ができる点なので、CouchAppのクライアントJSでapp.docFormを使うよりもよりセキュアに実装する場合はひっすなのです。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html を実装して、サーバーサイドでも気楽にDocument-Form マッピングができないとだめそうね。

CouchDBのデータはドキュメントである」という思想からすれば、すんなりFormに変換できないJSONはドキュメントではなくてデータだ、という感覚が身についてきました。これって、MS Access のフォームオブジェクトやレポートオブジェクトを開発しているときの感覚そのものですし、Excelを方眼紙のように使ってフォームを作るときもこの感覚ですねぇ。。。あー、楽しい。