Radiantのプラグインを作ってみた

RadiantはRailsベースのシンプルなCMSですが、この手のプロダクトのお約束でプラグインで様々な機能を拡張することができます。「プラグインで拡張できるなら作ってみなきゃ!」というわけで管理コンソールに簡単なCRUDアプリを追加してみました。
最初に試したのはRadiantのサイトのドキュメントにもあるActiveScaffoldを使う方法です。以下のリンク先に日本語化されたドキュメントがあります。

ただ、実際に試してみたところ「paginateがない」と怒られて、will_paginateを入れたものの、ActiveScaffold自体をwill_paginateに対応させるよう直さなければいけないようで数時間格闘したものの断念。そもそもRadiantにはscript/pluginがないので、ActiveScaffoldをインストールするときも以下のエントリを参考に普通にRailsプロジェクトを作ってそっちにプラグインをインストールしてRadiantのvender/pluginsにコピーするとかして大変でした。

次に試したのは普通にscript/generate scaffoldでscaffoldアプリケーションを自動生成するという方法です。ただ、こちらもRadiantのプラグインでscaffoldジェネレータを使う方法がわからなかったので、普通のRailsプロジェクトでscaffoldアプリを生成してapps配下のファイルをRadiantのvender/extensionsにコピーするという荒業を使いました。ルーティングで少しだけいじらないといけない部分があったり、本当にこんな作り方でいいのかという疑問は残るもののなんとか無事に動作。
結局scaffoldを動かすだけで半日以上かかってしまいました。
Rails 2.0以降を使ったことがなかったので、いろいろ変わっていて調べるのに時間がかかったということもありますが、Radiant独自の部分もそれなりにあってRailsを使ったことがあっても敷居はちょっと高いですね。でも、Railsの機能を使えるので慣れればいろいろできそうです。
ただ、かなりハマってしまったので、Railsがちょっと嫌いになりました…。