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を方眼紙のように使ってフォームを作るときもこの感覚ですねぇ。。。あー、楽しい。