Railsチュートリアル10章。実践記

ユーザーの編集ページを作成する

railsチュートリアルの10章はユーザーの編集ページをつくっていく。

なんだかようわからんのでコピペしまくる。そうするとなんとかできあがる。

できあがった編集ページはemali,とusernameとpasswordを編集できるようになっている。

passwordは変えなくていいだろってかんじだったけど、一応動く

ユーザー一覧の表示

app/db/seeds.rbを使ってユーザーを一気に登録する。fakerを使えだのなんだのうざいので、とりあえず名前一緒で番号だけ登録する

99.times do |n|
  name  = "kusamoto#{n+1}"
  email = "example-#{n+1}@railstutorial.org"
  password = "password"
  User.create!(name:  name,
               email: email,
               password:              password)
end

rails db:migrate:resetしたあとにrails db:seedを実行すると99人ユーザーが作成される

fakerはなにかというとgemでランダムなユーザー名を作成してくれるみたい。最初にGemfileにfakerを記述してbundel installしたけど、うまくうごかないしほんとだるい。bundle updateしたらなぜかインストールすることができた。railsチュートリアルでは使えといわれるが、だるいので使ってない

30人分だけ表示させる

paginationという仕組みがあってユーザーがたくさんいるときに30人分だけ表示してページを分割する。

なんとこの機能もgemを使うだけで簡単に設定できるらしい
gem 追加
追加するものは2つ

  • gem ‘will_paginate’, ‘3.1.6’
  • gem ‘bootstrap-will_paginate’, ‘1.0.0’

Gemfileにこれを記述したら、bundle install。場合によってはサーバーを再起動。

ページネーションを実現するには will_pagenateというメソッドを使う

<% provide(:title, 'All users') %>
<h1>All users</h1>

<%= will_paginate %>

<ul class="users">
  <% @users.each do |user| %>
    <li>
      <%= gravatar_for user, size: 50 %>
      <%= link_to user.name, user %>
    </li>
  <% end %>
</ul>

<%= will_paginate %>

すると自動的に、30人分が表示されいる↓ 地味にすごい
スクショ

管理者の設定

  • adminカラムを追加するためのマイグレーションファイルを作成
  • adminカラムはboolean型にしておく
  • id1のuserのadminをtrueにしてこれを管理者とする

管理者じゃなかったらリダイレクトさせるという処理でようわからん文法がでてくる。

before_action :admin_user, only: :destroy
def admin_user
  redirect_to(root_path) unless current_user.admin?
end

unlessは偽のときに実行される。current_user.admin?が偽のときに左辺が実行されるようになっている。before_actionにadmin_userを登録し、管理者のみがユーザーを削除できるようにしている。

スクショ

rails consoleで管理者を確認する。

adminカラムを追加しているので単にUser.first.admin?とするとtrue falseが確認できる。rubyはなんかオブジェクトがあったらtrueになるので?をつけなくてもいいみたい。

まとめ

とりあえず動くけど、あいかわらずようわからんという感じ。最近はいろいろやるときにCyberdug + AtomでやっていたがAtomは開く時に重い + Cyberdugのダブルクリック動作のせいで異常に疲弊していることがわかった。

なぜ疲弊に気づいたかはEmacsを使いだしたから。これはこれでだるいけど、あまり手の移動がないので疲れにくいのはあるかもしれない。キーボードからマウスに手を移動するのを何回も繰り返しているとやっぱり疲れはくる。でも疲れがでる最大の原因はフォルダを目視で探しているせいだろう。コマンド操作は文字うつのがだるいけど、目を使わないのは大きい。railsのディレクトリがある程度頭に入っているのが前提だけではあるけど。

そういうのもあってCyberdugを使う機械は少なくなるかもしれない

centosへのEmacsの導入方法については↓にかいているのでみてほしい
ほぼ無知識の状態からEmacsを使えるようにする。


Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 49

Warning: Undefined array key "thumbnail_url" in /home/users/1/boy.jp-rolpop/web/skc/wp-content/themes/godios/inc/schema-org.php on line 78