Ruby on Rails (3.x >= 3.2.9) のためのブログです (どっちかというと社内ブログ的な感じで、基礎から書いてきます) 。
Comments

modelの作成方法についてメモを残しておきます。

Railsにはscaffoldという機能があり、コレを使うと作成・更新・一覧表示などの機能をもったものを自動で作成してくれます。(詳細はググって下さい)
ただ、ここではこのscaffoldは使用しないものとします。




それでは。Userモデルを作成してみます

① モデル作成


# userモデルの作成
$ rails generate model user
      invoke  active_record
      create    db/migrate/20121204111949_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/unit/user_test.rb
      create      test/fixtures/users.yml

このコマンドにより。app/models/user.rb と、test配下のファイル、また、db/migrate/[timestamp]_create_users.rb が作成されます。



② db/migrate ファイルの編集


①で作成されたdb/migrate/[timestamp]_create_users.rb を開いて、以下のように編集

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :email, :null=>false

      t.timestamps
    end
  end
end

t.[データ型] :[カラム名],[オプション] の形式です。
ここで、Rails3系において使用出来るデータ型は、先程のURL先に書いてありますので、ご参照下さい。

ここで、t.timestamps を書いておけば、動的に created_at (作成日)updated_at (更新日) を追加してくれます。

ActiveRecord::Migration のメソッドに関しては、[コチラ] を参照。
あとは[ ココ(pentan.info) ]が非常にわかいやすくまとめて下さっています。



③ migrate処理を行う


# アプリケーションのルートディレクトリで以下を実行
rake db:migrate

これにより、先程編集した[timestamp]_create_users.rb の通りに、テーブルが作成されます。

マイグレーションに関するコマンドのリファレンスは [コチラ] を参照



④ modelに処理を書いてく

class User < ActiveRecord::Base
  def findall
    @users = User.all
  end
end

こんな感じで....
基本的に、Railsは「convention over configuration」(設定より規約) なので、データベース名やカラム名が規約と異ったりしない場合は何もかかなくてOKな様です。(つまり、migrateしてテーブルを作成した後は、modelにどんどんロジックを書いてくだけでOK)


とりあえず、今回はこんなとこです。


Categories: , , , , ,

Leave a Reply