Plugin関連が結構変わったので、もう一回、バージョン1.1のGrailsで簡単WEBアプリを作るところをまとめてみます。
何回分か分かりませんが、始めてみます。では。。。
<ここで使用するプラグイン>
・Acegiプラグインを使う。0.5.1
・Calenderプラグインを使う。1.1.1
・i18n-templatesプラグインを使う。1.1.0.1
・fckeditorプラグインを使う。0.9
<やってみたいこと>
・カレンダーから日付を入力する
・ユーザロール(Authority)とReqestMapでユーザの機能制限を付ける
・i18nを使ってプロトタイプ作りを楽にする
・byte[]を使ったファイルアップ
・hasManyとかbelongsToを使ってリレーション
・install-templatesでちょっと作業を楽にする
1.新規アプリを作る(前と一緒)
grails create-app アプリ名
2.プラグインの置き場所を指定する
前のバージョンでは、install-pluginをして入れてましたが、現バージョンでは、定義しておけば勝手にインストールしてくれます。ちょっと楽になりました。
conf/BuildConfig.groovyを作成し、プラグインの格納場所を作ります。
中身のサンプルは以下。
grails.project.plugins.dir="work_tmp/plugins"
grails.project.work.dir="work_tmp/work"
※work_tmpは初回起動時に勝手に作られます。
3.application.propertiesを編集する
#utf-8
#Tue Apr 28 02:40:17 JST 2009
app.version=0.1
plugins.acegi=0.5.1 ←追加
app.servlet.version=2.4
plugins.i18n-templates=1.1.0.1 ←追加
app.grails.version=1.1
plugins.fckeditor=0.9
plugins.hibernate=1.1
plugins.calendar=1.1.1 ←追加
app.name=アプリケーション名
4.とりあえずRun-appしてみる。
work_tmpディレクトリに、「3」で指定したPluginが取り込まれます。
5.acegiをセットする。
初回起動時にAcegiPluginは、インストールされていますので、コンソールから、
grails create-auth-domains
grails generate-manager
を叩きます。
そうすると、Person,Authority,RequestMapのドメインクラスや付随するcontroller、configなどが各ディレクトリに作られます。
6.ドメインクラスを作る
grails create-domain-class item
Item.groovyがdomainディレクトリに作られます。
同時にtest/unitにもテスト記述用のファイルが生成されます。
以下サンプル
class Item {
static mapping = {
id generator:"org.hibernate.id.enhanced.SequenceStyleGenerator",
params:[sequence_name:'item_id_seq',initial_value:1,increment_size:1]
}
/** 名称 */
String name
/** 備考 */
String note
/** 作成日 */
Date dateCreated
/** 更新日 */
Date lastUpdated
static constraints = {
name(blank:false)
note(blank:true,nullable:true,maxSize:40000)
dateCreated(display:false)
lastUpdated(display:false)
}
}
point1...
mappingのところは、入れておくと、IDが1から振られるようになります。
HSQLとPostgreSQLでIDの挙動が違うので、ここで調整しています。
point2...
dateCreatedは、create、editではいらない(セレクタのビューが出てきて正直鬱陶しい)ので、constraitsにdisplay:falseをつけておきます。
7.コントローラーを作る前にちょっと。。。
grails create-controller item
とやると、
class ItemController {
def index = {}
}
というのができるんですが、いっつもscffolod = trueにしてるので、
最初から出るようにしておきます。1コではあまり意味ないですが、
結構さっくり作るということは、さくさくドメインクラスを作ってCRUDしたり、ということが連続しますので、先にやっておきます。
grails install-templates
とすると、src/templates/artifactsディレクトリが作られます。
その中にあるController.groovyを下記のように編集します。
class ItemController {
def scaffold = true
}
この状態で、generate-controllerをすると、上記が適用されたファイルが生成されます。
同様に、Domainやcreateなども書き換えられますので、generate-allした後のよくやる作業は、ここでやっておくと便利です。
とりあえず第1回は、準備するところまで。
0 件のコメント:
コメントを投稿