ダウンロード サンプルソース (5.4 KB)
RailsにはScaffoldという簡単なアプリを自動生成するジェネレータがありますが、Scaffoldはデフォルトで用意されているものだけでなく自作することも可能です。今回は前回作成したCRUDアプリを自動生成するScaffoldを自作します。
-
- Page 1
はじめに
実用的なWebアプリを作ると、同じような画面がたくさん必要になってきます。特にバックエンド側の管理画面は、テーブルに対するCRUD機能を少しだけ拡張したような画面がたくさん必要になります。
このような場合にRuby on RailsのScaffold機能はとても有用です。たしかにRuby on Railsが最初から用意しているScaffoldが作るアプリでは、機能が足りなかったり冗長だったりします。しかし、RailsではScaffoldのようなコードジェネレータを簡単に自作できる仕組みを持っています。
今回はこの機能を使って、前回作ったリッチクライアント版のCRUDアプリを作るcurl_scaffoldを作っていきます。これはテーブル定義を与えると、Scaffoldのようにアプリケーションのコードを生成するプログラムです。
これまでの記事
サンプルソースについて
こちらよりサンプルソースをダウンロードできます。なお、サンプルソース実行にあたってはライセンスファイル「curl-license-5.dat」が必要になります。Curl IDEなどに含まれていますので、コピーして使用してください。
curl_scaffoldのイメージ
今回作るcurl_scaffoldを実行した際の流れは、次のようなイメージです。
1
Ruby on RailsのScaffoldでアプリを作るのと同じように、まずrailsコマンドでプロジェクトを作ります。
% rails alih % cd alih
2
script/generateコマンドでcurl_scaffoldジェネレーターを使ってアプリケーションのひな形を生成します。その際、scaffoldと同様にモデル名、RDBテーブルのカラム情報を指定します。
% ruby script/generate curl_scaffold player name:string team:string no:integer goal:integer assist:integer
3
rakeコマンドでDBを作成、サーバを起動します。
% rake db:migrate % ruby script/server
4
ブラウザで http://localhost:3000/players/start をアクセスすると前回と同じようなCurlの画面が表示されます。
もちろん、上の手順で作ったアプリにはデータがありません。前回のplayers.ymlファイルをtest/fixturesディレクトリにコピーし、以下のコマンドを実行することで前回同様のデータが入ります。
% rake db:fixtures:load
この記事は参考になりましたか?
- Ruby on Rails + Curl連載記事一覧
-
- Curl+JRuby+Google App EngineでTwitter風アプリを作る ~...
- Curl+JRuby+Google App EngineでTwitter風アプリを作る ~...
- Ruby on Rails + Curl Curl用Scaffoldを自作する
- この記事の著者
-
吉田裕美(ヨシダユウミ)
有限会社 EY-Office 取締役CADのベンチャー企業でCADのコア部分や図面管理システムなどの開発に従事した後、独立しJava,Ruby,PerlでWebアプリを中心に開発してきた。現在は殆どの開発はRuby on Rails。ここ数年はソフトウェアエンジニアの教育に興味をもち、従来の知識偏重な教育ではなく現実の問題を解決できるエンジニアを育てる教育に注力している。またLisp等に関心...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア

