前回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 でルートを確認
外部コマンドは”:!”で実行。
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
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
-
終了
つづく(かも?)