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

クズと天才は紙一重

不定期更新です。主に日々の活動記録( ・ㅂ・)و ̑̑

パンくずリストって知ってる?

 

そもそも、パンくずリストとは?

ホーム>ユーザー一覧

↑こういうやつです。

 

Railsには、パンくずリストが簡単に作れるgemがあります

 

Gemfileに以下を記述

gem "breadcrumbs_on_rails"

 

bundle install を実行

 

パンくずリストを追加したいページのコントローラに

add_breadcrumb '名前', :パス

という感じに記述します。

 

add_breadcrumb "User", :users_path

 

あとは、表示したいページのview側に以下を記述するだけです

 

<%= render_breadcrumbs separator: ' > ' %>

 

 

そろそろ、デザインしていかないとごちゃごちゃしそうだなー

という感じではあるので、ぼちぼちやっていきますかね。

ユーザーに権限をつける

CanCanCanにより権限管理がされているので

rolifyでユーザーに権限をつけるフォームを作り、

adminを設定しましょう。

 

現在、ユーザーには何の権限もついていないのでこの状態で

ユーザーを削除しようとすると

権限がありませんとエラーになってしまいます。

 

今回、権限の設定はユーザーの編集画面で行います

と思ったら編集にも権限が必要だった、、、

 

なのでrails c

登録されているユーザーに直接権限をまず与えます。

 

rails cで以下を実行

user.add_role "admin"

userは自分が権限を追加したいユーザーにしてください

"admin"のまま実行すると

userでエラーが起こります

 

これでユーザーに権限がついたので

試しに他のユーザーを削除してみる

今度はエラーなく削除できると思います。

 

というかこれ、開発する時に、自分にadmin権限あればいいだけだし

フォーム必要ないよなー、結局adminついてないと編集できないし

と思い始めたが仕方なく作る

 

チェックボックスで簡単にユーザーに権限をつけれるようにしました

 

ちなみにコードはこんな感じです

編集画面とcontrollerの方も載せておきます

f:id:akahaya_719:20161213000201p:plain

f:id:akahaya_719:20161213000228p:plain

最初のある程度の部分は終わったので

とりあえず次回からは気になったものを紹介していきます

 

何故厨ニ病が発症するのか

とある依頼を受けてこの件について調べることにしてみた

ほとんど、ふざけですが偉そうに語ってみる

 

中二病はおそらくほとんどの方が、知っていると思うので説明は省きます。

知らない人は調べてください。

 

中二病はなぜ起こるのか?

 

中学生の時期より身体、精神が著しく成長していき、

「自分は誰であるか?」ということを考え始め、

今までの自分自身というものが、大きく変わっていく不安を

解消していくための手段としてなりえるものなのではないか?

 

人生経験の浅い時期でもあり、

哲学的に自己という存在を確立していくことは難しく、

その手段は、自然と安易なものになってしまう

 

つまり、中二病というのは誰もが、なり得る症状であり

形は違えどこうした症状に必ず陥っているのではないのだろうか?

中二病 = 自分という個を確立していくもの

ということなのか?

 

調べてみると、中二病は種類があるらしく

世の中の学生はその中のどれかには属しているらしい

つまり、中二病は必ず、発症するものと考えてもいいのでは

 

 

中二病の裏には、自分と向き合うことの恐怖が存在するのではないか

 

中二病は多くの場合、自然治癒していくのですが、

それは、おそらく人生経験を積んでいく中で、

自分自身というものを知り、視野が広くなっていくからなのでしょう

自然と発症し、それが自然と消えていく

背景にあるのは、自分というものを徐々に理解していく恐怖

まあ、今は情報が多すぎるのでそうした影響も大きいのでしょうね

 

中二病になるのが普通だけど、問題点がある

 

本来、中二病というものは自然と発症し自然と消えていくのですが

稀に、大人になっても発症しているというパターンがあります

原因は

自分が考えていた世の中とのギャップとの差や、

自分自身と向き合うことの恐怖、人それぞれでしょう

きっと、何かしら目的があるのでしょう

 

・問題点と言っておきながら、、、

 

人は真理というものを常に追求しているし

日々、考えないようにしていたりしているが

無意識の中にはきっと落ちているんでしょう

どの年代になっても、中二病になることはあり得るし

自然と発症し、自然に消えていくというループを繰り返しているのでは

無意識の中に落ちているので、きっと気づかないのでしょうね

 

・まとめ

 

中二病とは、自分自身の確立のための手段であり、

真理を求めるための手段でもある

 

最後に

それっぽいこと書いただけだけど、読み返すととても恥ずかしい

黒歴史間違いなし

ユーザー登録

現在、ユーザーには、情報がemailしかない状態なので

名前を追加する。

 

以下コマンドを実行

rails g migration AddColumnUser

AddColumnUserの部分は既存のmigrationファイルと名前が

被っていなければ何でも大丈夫です。

 

作成されたファイルに以下を記述する

add_column :users, :name, :string

で指定したテーブルにカラムを追加することができます

また、カラムを削除したい場合は

remove_columnを使用します。

興味がある方は

rails migrationで調べれば、さらに詳しいことがいろいろ出てくると思います

 

その後、以下コマンドを実行

rake db:migrate
bundle exec annotate

 

ユーザーのmodelにnameのカラムが追加されていると思います。

 

次に、登録画面を編集して、登録時に名前も登録できるようにします

 

views/devise/registrations/new.html.erbを編集することで

新規登録画面を編集することができます。

formのままだと、ややこしいので

simple_rorm に書き換えながら編集します

f:id:akahaya_719:20161205144534p:plain

最終的にこうなります。

simple_formを使うとformを楽に書くことができます

 

ただ、この状態で登録しても、ユーザーに名前は登録されません。

 

 

github.com

 

詳しくはこちらを見てください

 

ユーザー登録時に名前を登録するために

application_controller.rbに以下を追加します

before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
 devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end

これで登録時に、名前を入力すればユーザーに名前が登録されます。

rails s でサーバーを起動し確認します

 

登録画面にnameが追加されました。

ユーザーを登録して、

ユーザー一覧で名前も見れるように変更しましょう

次回はユーザーに権限管理をつけましょう

エナジードリンクについて調べてみた

最近は、寝る間も惜しんで開発することが多く、

エナジードリンクを箱買いしたりしたのですが、

多くの方に飲むのを止められるのでいろいろと調べてみました。

 

エナジードリンクの死亡例、どうやら原因は「カフェイン中毒」らしい

日本とアメリカのエナジードリンクの内容物に違いはあるが

問題ないとは言えない状況

 

そもそも、カフェインによる効果にはどのようなものが、、、

・鎮痛作用

・スタミナの持続力アップ

・眠気減退

・気分高揚

 

しかし、急性中毒状態になると、、

・神経圧迫による視覚異常や聴覚異常

・死に至る可能性あり

 

精神症状としては以下のことが

<軽度>

・落ち着きがなくなる

・緊張感

・感覚過敏

・一時的な不眠症

・不安

etc...

<重度>

・精神錯乱

・幻覚

・幻聴

パニック発作

etc...

 

<身体症状>

・胃痛

・胸痛
・吐気

・頭痛

・瞳孔拡大

・動悸
etc...

 

カフェインの摂取は心臓にかなり負担をかけるらしい

心臓に何かしら疾患がある方は飲むのはやめたほうがいいです。

 

では、どのくらいのカフェインを摂取したらダメなのか

日本で、1日あたりの安全なカフェイン摂取量は

・成人 400mg以下

・妊婦 200mg以下

・子供 45mg以下

と言われているらしい

 

カフェインの致死量は5〜10gとされ、

エナジードリンクで言えば15ℓ

そこまで、飲む人はなかなかいないのではないでしょうか?

 

エナジードリンク自体は危険な飲み物では、ないものの

飲みすぎると依存状態になり、死亡する可能性もあるというわけです。

また、糖分も多く入っているため、糖尿病の危険性もあります。

 

エナジードリンクとの正しい付き合い方

・短時間に大量に飲まないこと

・子供、妊婦はエナジードリンクを控える

・カフェインを摂りすぎないようにする

薬や食品にもカフェインが含まれているものもあるので、

エナジードリンクを飲む方は、カフェインの摂取量を意識するべきかと思います。

 

というわけで、カフェインの危険性に驚かされました、、、

今後、エナジードリンクを飲む際はカフェインを意識してみましょう。

 

ユーザー登録画面

今回は、ユーザの登録画面を追加

フォーム画面を追加するので

simple_formを実装

 

Gemfileに以下を追加して、bundle installを実行。

gem 'simple_form'

以下、コマンドを実行

rails generate simple_form:install

 

ついでに、ユーザ一覧を見れるページも作っておく

 

以下、コマンドを実行

rails g controller Users

 

routes.rbに以下を追加

resources :users

 

users_controller.rbに以下を追加し、usersのviewにindexを作成する

def index
 @users = User.all
end

 

homeのindexにユーザーのリンクを表示する

<%= link_to 'ユーザー一覧', users_path %>

後は、@usersをテーブルでeachして

一覧が表示されます。

 

編集画面では、roleをつけられるようにしたいので

また、今度やっていきましょう

userに名前をつけたりも、後でつけていかないとですね

 

新規プロジェクトを作成

rails newで新規プロジェクトを作成。

データベースはPostgreSQLに設定。

 

とりあえず、load_and_authorize_resourceが使えるようになると便利なので、

CanCanCanの実装、そのために

Devise,rolifyの実装を行います。

ついでに、ユーザの権限を選択するフォームも作成。

 

Gemfileに以下4つを追加して、bundle install<span">を実行。

gem 'devise'
gem 'cancancan'
gem 'rolify'

 

 

model書き出しをしてくれる、annotateがあると便利なのでこちらも実装しておく

gem 'annotate'

 

その後、以下コマンドを実行

rails generate devise:install
rails generate devise User
rails generate cancan:ability
rails generate rolify Role User
rake db:migrate

 

あっ、エラーで止まった

PG::DuplicateColumn: ERROR:  column "email" of relation "users" already exists

emailカラムが既にできているらしい

不必要なmigrateファイルを削除して回避。

 

以下、コマンドを実行

rails g controller Home index

 

次に、Deviseの設定

config/routes.rbにrootの設定

root to: "home#index"

 

config/environments/development.rbに以下を追加

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

 

ログインページのデザインを変更する時用にviewを作成しておく

rails generate devise:views

 

app/models/ability.rbに権限を定義

class Ability
 include CanCan::Ability
def initialize(user)
  user ||= User.new
if user.has_role? :admin
   can :manage, :all
  else
   can :read, :all
  end
 end
end

とりあえずここまで、

既に、load_and_authorize_resourceは使える状態

ログインページ作ったりまだまだやることはありそうな予感