コントローラーとモデルの作成
コントローラーを作成する
まずは昨日の続きでコントローラーを作っていくところから始めます。
まずはコントローラーを作成する
bundler exec rails g controller ideas index show new edit
これを実行するとRailsの命名規則の元、適切なタイトルと場所にファイルとディレクトリが自動生成されます。とりあえずindex
, show
, new
, edit
を作成しました。おそらくdestroy
なども必要になりそうですが、あとあと追加していきます。
作成されるファイル:
app
-> controllers
-> ideas_controller.rb
app
-> views
-> edit.html.erb
, index.html.erb
, new.html.erb
, show.html.erb
モデルを作成する
次にmodelを作成していきます。
まず以下のコマンドでmodelを作成する。
bundler exec rails g model idea title:string content:text
これでideaに属するtitle
とcontent
のカラムを作成することができました。
作成されたファイル:
app
-> models
-> idea.rb
db
-> migrate
-> 20190214133513_create_ideas.rb
そして、以下のコマンドでテーブルを作成する。
bundler exec rails db:migrate
ideasテーブルが作成されたことがコンソールから確認できる。
== 20190214133513 CreateIdeas: migrating ======================================
-- create_table(:ideas)
-> 0.0016s
== 20190214133513 CreateIdeas: migrated (0.0017s) =============================
ちなみにbundler exec rails db:migrate
を実行すると、schema.rb
が作成されます。これはマイグレーションファイルの実行で作成されたデータベースの構造を表してます。
ActiveRecord::Schema.define(version: 2019_02_14_133513) do
create_table "ideas", force: :cascade do |t|
t.string "title"
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
viewを確認する(おまけ)
最後にindexページのviewを確認してみようと思います。 実はviewはcontrollerを作成した時に生成されています。
場所はapp
-> views
-> ideas
-> index.html.erb
中身はこんな感じ
<h1>Ideas#index</h1>
<p>Find me in app/views/ideas/index.html.erb</p>
まずは以下のコマンドでRials serverを実行する
bundler exec rails server
http://0.0.0.0:3000
にアクセス
Rails serverが立ち上がってることを確認したら/ideas/index
のパスを指定する
こんな感じで表示されたら成功
今日はコントローラーとモデルを作成してみた。明日はるrootメソッドとindexページを作成していく予定です。