Categories
open all | close allTags
フォーム | 名称 | カテゴリ | デュアル・コア | ドキュメント | JustPosted | Flash | スキンエンジン | Aptana | Migration | 国際化 | 認証 | CSRF | Subversion | タグ | テスト | rake | RESTful | rubygems | パソコンSearch
Railsにちょっと進出(やっと)
DBの文字コード問題が解決したのでやっと先に進めます。まずはAptanaでアプリケーションを生成し,database.ymlを編集。移行したDBにアクセスするようにしました。注意したのはテーブル名を複数形にしない設定にしたこと。あと,テストモードのDBを別にしないといけないと注意書きが書いてありましたが,作るのが面倒なのでいまのところ一緒のものに。このあたりは問題が実際に起こってから考えます。
Railsはいろいろな「規約」を設けることで,プログラミングを楽にしていますが,実は今回のように既存のDBを使う場合,「規約」に合わせることができないため,いろいろと面倒なことが起こります。一からRailsで作るのと比べると倍くらい,気を使うところが多いのではないでしょうか。
次に,DBのテーブルにアクセスするための「モデル」を作っていきます。最初はモデルのクラスをただ作ればいいのかと思ったのですが,それだけでは動かないようです。generatorでモデルを作る必要がありました(このあたり,何がどう絡んで動いているのかは,知らなくてもいいのかもしれませんが,多分将来はきちんと理解しておく必要が出てくるでしょう)。
まずはアイテムのためのItemを生成。ここでもテーブルが規約に合っていないので,
set_primary_key: inumber
set_table_name: nucleus_item
と付ける必要があります。
とりあえず,scaffoldを使ってDBアクセスできるかどうか試そうとしたのですが,ジェネレータがDBがないとエラーを吐いてうまくいきません。CodeZineの記事を参考にコントローラを作り,scaffold: itemと書いてサーバーを起動。http://localhost/userにアクセスしたら,おお,ちゃんとnucleus_itemテーブルの内容が表示されました。
ただ,日本語が全部文字化けして?になっています。再びCodeZineの記事から文字設定をし(Layoutはまだ使っていないので不要),DBの文字設定もしました。多分DBのところが一番問題だったのではないかという気がします。これらの修正で,ちゃんと日本語でテーブルの内容を表示しました。
scaffoldには実用的な意味はあまり期待していないのですが,こうやってDBへのアクセスを簡単に確認できるのはありがたいことです。
というわけでRailsに踏み出したといっても,まだコードも何も書いていないのですが,一つ動くことはようやく確認できました。次はほかのテーブルも同じようにモデルを作っていき,リレーションの設定をしていくことになります。
Comments
No comments yet. You can be the first!