前回OSセットアップからrailsアプリの作成までやりました。

scaffoldで作られたファイルを見てみる。

Viewを見てみる

1
cozy@ubuntu:~/ruby/book_library$ vim app/views/books/index.html.erb

controllerを見てみる

コントローラを追加で開く

追加でファイルを開く場合は

ESCでノーマルモードにしてから、

1
:e app/controllers/books_controller.rb

ファイル名はTabで補完してくれるみたいです。

rake でルートを確認

外部コマンドは”:!”で実行。

1
:!rake routes

vimの終了

ESC:q

user modelの作成

1
2
3
4
5
6
7
8
cozy@ubuntu:~/ruby/book_library$ bundle exec rails generate model user name:string department:string
cozy@ubuntu:~/ruby/book_library$ bundle exec rake db:migrate
#チュートリアルに基づいてデータも作成しときます。
cozy@ubuntu:~/ruby/book_library$ bundle exec rails console
Loading development environment (Rails 4.1.4)
2.1.0 :001 > user = User.new(name: "アリス", department: "ネットワーク管理部")
2.1.0 :002 > user.save
2.1.0 :003 > User.create(name: "ボブ", department: "サービス開発部")

usersの作成

1
cozy@ubuntu:~/ruby/book_library$ bundle exec rails g controller users

indexアクション作成

ここにきてやっとvimでrubyソースをいじります。

その前に、このへんからgitでバージョン管理をはじめときます。

1
2
3
cozy@ubuntu:~/ruby/book_library$ git init
cozy@ubuntu:~/ruby/book_library$ git add .
cozy@ubuntu:~/ruby/book_library$ git commit -m "init"

なんかgem関係の良くわからんファイルも一緒に入っちゃいますが、良くわからないんで排除しないでおきます。

それではソースを開きまして編集します。

1
cozy@ubuntu:~/ruby/book_library$ vim app/controllers/users_controller.rb

ESCでノーマルモードになり、”i”で挿入モード。

あとはメモ帳と同じようにコードを入力。

“:w”で上書き保存。保存しとかないと”:e”でファイル開け無いっぽいです。

引き続きviewを作成

1
:e app/views/users/index.html.erb

でファイルを作成してチュートリアルの内容を写経します。

ルーティング設定

1
:e config/routes.rb

編集が終わったら

1
:wa

で開いてるファイルを上書き保存。

1
:q

で終了します。

変更点はこんな感じ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
cozy@ubuntu:~/ruby/book_library$ git add .
cozy@ubuntu:~/ruby/book_library$ git diff HEAD
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 3e74dea..f610610 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -1,2 +1,5 @@
 class UsersController < ApplicationController
+       def index
+               @users = User.all
+       end
 end
diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb
new file mode 100644
index 0000000..e8bcbf3
--- /dev/null
+++ b/app/views/users/index.html.erb
@@ -0,0 +1,17 @@
+<h1>利用者一覧</h1>
+<table>
+       <thead>
+               <tr>
+                       <th>氏名</th>
+                       <th>部署</th>
+               </tr>
+       </thead>
+       <tbody>
+               <% @users.each do |user| %>
+               <tr>
+                       <td><%= user.name %></td>
+                       <td><%= user.department %></td>
+               </tr>
+               <% end %>
+       </tbody>
+</table>
diff --git a/config/routes.rb b/config/routes.rb
index f075ae6..f4d2183 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,6 +1,6 @@
 Rails.application.routes.draw do
   resources :books
-
+  resources :users , only: %i(index)
   # The priority is based upon order of creation: first created -> highest priority.
   # See how all your routes lay out with "rake routes".

cozy@ubuntu:~/ruby/book_library$ git commit -m "add users"

今回使った機能

:e filename
ファイルを開く。なければ新規作成
:!command
外部コマンド実行
i
挿入モード
ESC
ノーマルモード
x
カーソル下の文字削除
v
ビジュアルモード(領域選択モード)
V
ビジュアルモード行単位
y
選択領域をコピー
P
貼り付け
u
アンドゥ
:wa
全ファイル保存
:q
終了

つづく(かも?)