読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Railsをまとめて復習するメモ

Rails
<スポンサーリンク>

Railsの勉強をしていたんですが、色々と他のことをやっていたら勉強を中断してしまったので、最初からまとめて復習してみます。

・プロジェクトを作成する

rails new sample

・コントローラーを作成する

rails generate controller samples index show hoge

コントローラーは「コントローラー名_controller.rb」というファイルが作られて、そこに色々とアクションが書かれます。

・サーバを起動する

rails server

ページにアクセスするURLは、

http://ドメイン/コントローラー/アクション

・コントローラでインスタンス変数を使って、その値をビューで表示

samples_controller.rb

class SamplesController < ApplicationController
  def index
  	time = Time.now
  	@str = time.strftime("%Y年 %m月 %d日 %H時 %M分 %S秒")
  end

  def show
  end

  def hoge
  end
end

index.html.erb

<h1>Samples#index</h1>
<p>Find me in app/views/samples/index.html.erb</p>

<hr/>
<%= @str %>

これでブラウザから見ると@strに格納された時刻が表示されます。

・モデルを作成する

rails generate model friend name:string age:integer


・マイグレーションファイル
マイグレーションファイルというのは、データベースの更新を行うためのファイルです。
db/migrate以下に、
20140429072722_create_friends.rb
みたいなファイルができます。

マイグレーションを実行するには、

rake db:migrate

というコマンドを打ちます。

・シードファイルを作る
シードファイルは、db/seeds.rbというファイルに色々と書きます。
シードというのは、あらかじめテーブルに用意しておくデータを用意するためのものです。

seeds.rb

Friend.create(
  name:"hoge",
  age: 25)

Friend.create(
  name:"fuga",
  age: 30)

Friend.create(
  name:"ANA",
  age: 15)

Friend.create(
  name:"ERUZA",
  age: 18)

シードを実行するには、

rake db:seed

というコマンドを実行します。

railsのDBの値を確認するには、

rails dbconsole

というコマンドを実行します。

>rails dbconsole
sqlite> .tables
friends            schema_migrations
sqlite> select * from friends;
1|hoge|25|2014-04-29 07:49:07.613047|2014-04-29 07:49:07.613047
2|fuga|30|2014-04-29 07:49:07.644124|2014-04-29 07:49:07.644124
3|ANA|15|2014-04-29 07:52:17.450515|2014-04-29 07:52:17.450515
4|ERUZA|18|2014-04-29 07:52:17.469901|2014-04-29 07:52:17.469901
sqlite>

たしかにseedに書いたデータが挿入されています。

dbconsoleを終了するには、.quitかCtrl+cで終わることができます。

それでは、上のデータをブラウザに表示してみましょう。

controllers/friends_controller.rb

class FriendsController < ApplicationController
  def show
    @results = Friend.all
  end
end

views/friends/show.html.erb

<h1>Friends#show</h1>
<p>Find me in app/views/friends/show.html.erb</p>

<hr/>
<table>
  <tr><th>ID</th><th>NAME</th><th>AGE</th></tr>
  <% @results.each do |result| %>
  	<tr><td><%= result.id %></td><td><%= result.name %></td><td><%= result.age %></td></tr>
  <% end %>
</table>

ほんと、これだけでブラウザに以下のようにデータを表示することができます。
ちょっとCSSをいじっていないので、見づらいですね。

f:id:sho322:20140429175304j:plain

長くなったので、とりあえずはここまでにします。
続きはまたあとで。