Modelを作ろう! (4/7)
作成:2012-02-06 08:17
更新:2012-02-06 08:17
更新:2012-02-06 08:17
■Modelを作成する
では、いよいよModelを作成しましょう。Modelの作成は、railsコマンドで行うことができます。これは以下のような形で記述します。
Modelの作成というのは、単にModelのクラスを作るということだけではありません。そのModelが参照するデータベースのテーブルもあわせて作成する、ということなのです。Railsでは、このコマンドによりModelクラスを作成し、それから「マイグレーション」という機能により、作成されたModelやデータベース関連の設定情報からデータベースにテーブルを生成する、という仕組みになっています。Modelとテーブルは非常に密接な関係にあるのです。
Modelを作成する際に、そのModelに保管されるのはどういうデータなのか、といったことをきちんと定義しておき、それをもとにテーブルを生成する、というわけです。この定義は、保管する値の項目名と値の種類を記述していきます。以下のような具合です。
今回作成したのは「helo」というModelです。既にHeloControllerを用意していますから、このControllerと連携して利用するものになります。このようにRailsでは、ControllerとModelはセットで機能します。「○○Controller」というクラスで使うモデルは、「○○」という名前で作成します。
作成されたhelo.rbのソースコードを見ると、以下のリストのようになっていることがわかるでしょう。Modelは「ActiveRecord::Base」というクラスを継承して定義されます。まだ現時点では何も中身はありません。
rails generate model モデル名 定義「rails generate model」というのがコマンドです。先にController/Viewを作成するときに似たようなコマンドを入力しましたからだいたいわかりますね。Modelの場合は、その後にモデルの名前と、作成するテーブルに関する定義を記述します。
Modelの作成というのは、単にModelのクラスを作るということだけではありません。そのModelが参照するデータベースのテーブルもあわせて作成する、ということなのです。Railsでは、このコマンドによりModelクラスを作成し、それから「マイグレーション」という機能により、作成されたModelやデータベース関連の設定情報からデータベースにテーブルを生成する、という仕組みになっています。Modelとテーブルは非常に密接な関係にあるのです。
Modelを作成する際に、そのModelに保管されるのはどういうデータなのか、といったことをきちんと定義しておき、それをもとにテーブルを生成する、というわけです。この定義は、保管する値の項目名と値の種類を記述していきます。以下のような具合です。
rails generate model モデル名 項目名:値の種類 項目名:値の種類 ……では、今回は「title」と「content」という2つの項目を定義しておくことにしましょう。サンプルということで、ごく簡単なものでいいでしょう。Aptana Studioであれば、下のコンソールから以下のようにタイプし、実行してください。
rails generate model helo title:string content:stringもちろん、ターミナルやコマンドプロンプトから実行してもかまいません。これで、プロジェクトの「app」フォルダ内にある「models」フォルダ内に、「helo.rb」というファイルが作成されます。Modelのクラスは、基本的にこの「models」フォルダの中に保管されます。
今回作成したのは「helo」というModelです。既にHeloControllerを用意していますから、このControllerと連携して利用するものになります。このようにRailsでは、ControllerとModelはセットで機能します。「○○Controller」というクラスで使うモデルは、「○○」という名前で作成します。
作成されたhelo.rbのソースコードを見ると、以下のリストのようになっていることがわかるでしょう。Modelは「ActiveRecord::Base」というクラスを継承して定義されます。まだ現時点では何も中身はありません。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※helo.rbのソースコード class Helo < ActiveRecord::Base end
※関連コンテンツ