LoginSignup
0
1

More than 5 years have passed since last update.

Railsでindexページを作成する一通りの流れ

Last updated at Posted at 2018-12-05

DBをmigrationする

まず最初に、入力したデータを格納するDBを作ります。
モデルを作成すると自動的にマイグレーションファイルが作られるので、DBディレクトリから確認しましょう。

そこから型とカラム名を定義します。

マイグレーションファイルのdef changeとendの中に以下のように定義します

t.string :name
t.text :body

stringが短い文字列、textが長い文字列、integerが数字、booleanがtrue/falseなど二択の時と覚えておけば大体は対応できるかと思います。

Idやcreated_at、updated_atは自動で追加されるのでここでわざわざ定義する必要はありません。

Migrationファイルを編集できたら

rake db:migrate

にて、DBを構築します。

※DBに項目を足したい場合は以下のコマンドで追加用のマイグレーションファイルが現れます。

rails g migration Add(カラム名)To(コントローラー名(複数形))

追加する場合はdefとendの中に以下のように書きます


add_column :コントローラー名(複数形), :
add_column :hoges, :title, :string

Controllerの書き方

アクション = だいたいURL

URLのコントローラー名の次にくるURLとなります
https://アプリ名/コントローラー名/アクション名

対応するviewと同じ名前です
Viewが存在せず、処理だけ行うアクションもあります(createなど)

def  #アクション名
  #この中に処理を書く
end

この中でやること

インスタンス変数をいうアットマークがつく変数の中にviewに渡したいデータを入れます。ここでは@fugasがインスタンス変数です。

def  index
  @fugas =  Hoge.all
end

Indexの場合、一覧でデータを表示したいので複数系担っています。Hogeというクラスオブジェクトのテーブルにある全てのデータを格納します。

.allについて

これはメソッドといい、オブジェクトに対して命令を行うものです。
自分で作成するメソッドとあらかじめRuby側が作っていて決められているものがあり、allやcreateなどはあらかじめ定められているクラスメソッドです。
※メソッドにはクラスメソッドとインスタンスメソッドというものがあります。

※クラスは設計図、インスタンスが(それを元にして作られた)実体と覚えてください。クラスは集合体ですが、インスタンスがクラスから抽出して実際に取り扱うデータになります。

Viewの書き方

Indexの場合、インスタンス変数の中にある配列を一つ一つ取り出します

<% @fugas.each do |fuga| %>
<% end %>

ちなみに%を使った書き方は、htmlの書き方のファイルの中で、Rubyの構文を使用する時に使うものです。
<% %> のように記載する場合は、表示はせず演算だけしたい場合であり
<%= %> のようにイコールをつけて記載する場合は、表示はさせたい場合です

※ないデータを表示しようとするとエラーになるので、仮のデータを入れるか、フォームから入力してデータを入れてください

初心者の方は中身がないオブジェクトにメソッドを使って取り出そうとするためエラーが出るというケースが多発しがちです。

Routingの書き方

いろいろ細かい指定の方法はありますが、初心者の方はとりあえず

resources :コントローラー名(複数形)

のように書いておけば一通りルーティングが通って繋がるようになります。これを指定しないとリクエストを受け取った時にどれを表示するかが紐づけられていない状態なので、必ず指定しましょう。

詳しいことや仕組みはこちらを見てください。
https://railsguides.jp/routing.html

これでオブジェクトの中にデータが格納されていれば表示されるはずです。ここでサーバーを起動すると今はおそらくNo Method Errorが出るでしょう。空のオブジェクトに対してメソッド が命令しているので当然です。この後、フォームを作成してデータを入れていきましょう。

※Model

Modelはテーブル間を連携させる時に主に使うので今回は記載しません。後ほど説明します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1