とりあえず、全体感をつかむためにアプリを作ってみる。
といっても、右も左もわからないのでサンプルを探す。
http://www.itmedia.co.jp/enterprise/articles/0703/12/news018_2.html
ここがよさそうだ。ここを参考にしながらやってみることにした。
どうやらRadRailsを使ったアプリの構築順序は
DB作成→migrationファイル作成→scaffold作成→カスタマイズ
という順番になるっぽい。
それぞれのステップのだいたいの意味としては
だいたい以下の感じだと思っている。
DB作成:MySQL上のデータベースを作成すること
migrationファイル作成:テーブルの雛形ファイル作成
scaffold作成:アプリの土台(scaffold)をrailsで自動生成
カスタマイズ:土台をいじくって完成させる
とりあえずphpMyAdminでテスト用のデータベースを作成する。
DB作成はサンプルのとおりサクっとやって、次のステップのmigrationファイル作成に取り掛かる。と思ったら、Generatorsタブがない。
一瞬あせったけど、Window>Show View>Otherでrailsの下のGereratorsで出てきた。
で、次に「rake migrate」を実行するらしいけど、ここでアレっ?と思うことが。
サンプルのサイトにはこのステップをなぜかInstantRailsから起動するコマンドプロンプトやることになっている。いやーそんな中途半パなプラグインはねーだろ、と思って適当にいじったらやっぱりEclipse上からできた。
001_enquete.rbを右クリックすると、Run MigrationというのがコンテキストにでてくるのでそれでOK。サンプルどおりの結果が得られた。
実は、ここで一度ハマッた。原因はプロジェクト名をtestとしていた、かつ、プロジェクト作成時のDBの選択をMySQLとしていないせいだった。RadRails?では、プロジェクト作成時にDBの接続設定ファイル(config>database.yml)も作成されており、その設定もプロジェクト名が使われるため、サンプルと整合性がとれておらず、DBと接続できていなかったからだ。コンソール上のエラーログはけっこうざっくりとしかでてなかったので、原因追求にけっこう手間取ってしまった。
さて、次はscaffoldの生成だ。サンプルどおりGeneratorsタブでscaffoldにして、Enquete Admin::Enquetesって入力して(全然意味わかってないけど)GO押下。
・・・なんかスムーズに行ってない雰囲気のメッセージがでた。
wrong number of arguments(3 for 2)
サンプルのステップでは後はブラウザでアクセスすると、今生成した画面が見えるよ!となっているので試したがやはり見えない。
変わりにこんな表示が。
=====
Routing Error
No route matches "/admin/enquetes/" with {:method=>:get}
=====
うーん。どっかにstrutsでいうstruts-config的な役割のものがなくてはいけないのに、それがない、もしくは間違ってる風なメッセージに見える。rubyの基礎も調べず、いきなりこれからやったから、どう手をつけていいのかわからない。ちょっと疲れたので明日以降に持ち越し。
コメントする