マイクロポスト用のモデル作成
これからマイクロポストの機能を追加するので、まずマイクロポストのモデルを作成します。
以下、「Ruby on Rails Tutorial」の10章を参考に行います。
参考資料ページの6.参照
●マイクロポスト用のモデル作成
①Micropost作成
下記カラム構成でMicropostモデルを作成します。
カラム名 タイプ
content string
user_id integer
$ rails generate model Micropost content:string user_id:integer
invoke active_record
create db/migrate/20131018130036_create_microposts.rb
create app/models/micropost.rb
invoke test_unit
create test/models/micropost_test.rb
create test/fixtures/microposts.yml
②インデックス追加
"user_id"カラムと自動で作成される"created_at"を同時に指定して multiple key indexとして定義します。
$ vi db/migrate/20131018130036_create_micropost
s.rb
$ bundle exec rake db:migrate
== CreateMicroposts: migrating ===============================================
-- create_table(:microposts)
-> 0.0309s
-- add_index(:microposts, [:user_id, :created_at])
-> 0.0004s
== CreateMicroposts: migrated (0.0315s) ======================================
●存在チェックのバリデーション定義
マイクロポストには、どのユーザーが投稿したのか識別する必要があるので、"user_id"に対し、存在チェックのバリデーションを定義します。
$ vi app/models/micropost.rb
参考資料ページの6.参照
●マイクロポスト用のモデル作成
①Micropost作成
下記カラム構成でMicropostモデルを作成します。
カラム名 タイプ
content string
user_id integer
$ rails generate model Micropost content:string user_id:integer
invoke active_record
create db/migrate/20131018130036_create_microposts.rb
create app/models/micropost.rb
invoke test_unit
create test/models/micropost_test.rb
create test/fixtures/microposts.yml
②インデックス追加
"user_id"カラムと自動で作成される"created_at"を同時に指定して multiple key indexとして定義します。
$ vi db/migrate/20131018130036_create_micropost
s.rb
class CreateMicroposts < ActiveRecord::Migration
def change
create_table :microposts do |t|
t.string :content
t.integer :user_id
t.timestamps
end
add_index :microposts, [:user_id, :created_at]
end
end
$ bundle exec rake db:migrate
== CreateMicroposts: migrating ===============================================
-- create_table(:microposts)
-> 0.0309s
-- add_index(:microposts, [:user_id, :created_at])
-> 0.0004s
== CreateMicroposts: migrated (0.0315s) ======================================
●存在チェックのバリデーション定義
マイクロポストには、どのユーザーが投稿したのか識別する必要があるので、"user_id"に対し、存在チェックのバリデーションを定義します。
$ vi app/models/micropost.rb
class Micropost < ActiveRecord::Base
validates :user_id, presence: true
end
| アプリ作成 | 12:42 | comments:0 | trackbacks:0 | TOP↑