modelの作成方法についてメモを残しておきます。
Railsにはscaffoldという機能があり、コレを使うと作成・更新・一覧表示などの機能をもったものを自動で作成してくれます。(詳細はググって下さい)
ただ、ここではこのscaffoldは使用しないものとします。
- http://kosuke-komiya.info/wiki/index.php?RubyOnRails_Types : こちらに、RailsのModelで使用出来るデータ型がわかりやすく載っています
① モデル作成
# 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)
とりあえず、今回はこんなとこです。