■プログラミング学習
◎ログイン機能
Railsのログイン機能では"devise"というGemを使用します。
ユーザー管理機能を簡単に実装が出来るGemになっていて、多くのRailsアプリケーションサービスでも使用されています。
使用方法 Gemfileの一番下に下記を追記する
```
gem 'devise'
```
追記後、ディレクトリを確認の上、
bundle installを実行する。
deviseを使用するために、Gemのインストール後に、devise専用のコマンドで設定ファイルを作成する。
◎rails g devise:install コマンド
deviseの「設定関連に使用するファイル」を生成するコマンド。
bundle install後に実行をする。
◎Userモデルの作成
```
rails g devise user
```
こちらのコマンド実行後、
routesファイルに下記記述があることの確認
```
devise_for :users
```
とmigrateファイルにて、記述を確認し、
マイグレーションを実行する。
◎ビューファイルの作成
devise用のビューを生成する。
```
rails g devise:views
```
◎スネークケースとキャメルケース
ファイル名やクラス名などに使われている大文字や小文字の使用のルールを整理します。
キャメルケース :先頭が小文字で、単語の区切りを大文字で表す。
(例:adminUserCommentCreator)
アッパーキャメルケース:キャメルケースの一つ、先頭から単語の区切りを大文字で表す。
(例:AdminUserCommentCreator)
スネークケース:単語の区切りをアンダースコアで表す
(例:admin_user_comment_creator)
クラス名:アッパーキャメルケース
メソッド名:スネークケース
変数名:スネークケース
◎デバイス パラメーター サニタイザーメソッド
通常のリクエスの場合、コントローラーにストロングパラメーターを記述し、受け取れるパラメーターを制限している。devise側でも同様の処理をしているが、Gem内に記述がされており、編集することが出来ない。
そのため、deviseのストロングパラメーターを取得するために、
「デバイス パラメーター サニタイザーメソッド」を使用する。
# メソッド名は慣習のためため自由につけてもよい
```
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー])
end
```
第1引数 処理名
:sign_in :サインインの処理を行う時
:sign_up :サインアップの処理を行う時
:account_update : アカウント情報更新の処理を行う時
こちらのコードを記述するのは、application_controller.rbファイルに記述する。
記述例
```
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
end
end
```
if文でもしdeviseに関するコントローラーの処理であれば、という形でメソッドを実行するように設定をします。
■読書
◎妄想する頭 思考する手 暦本純一 氏(著)を先日、読み終えました。
とても読みやすく全体的としてはアイディアをどう生み出していくか、
1行で書ききるところから、スタートし、まず試すという姿勢の大切さを本書から受け取りました。
またジャンルは、妄想のもとではない「ディープラーニング」を研究したいなどではなく、よく具体的にその研究をしていった結果に、出てくるなにかおもしろいものということを突き詰めていくことの大切さ。
事例で面白いなと思ったのが、IBMの音声タイプライターの試作機の話で、先にテクノロジーで創るではなく、被験者には「音声で入力出来るタイプライターです」と説明し、ただ実際はマイクに向かってしゃべっている内容を別室で人が打っていくといったもので、実際そういった機能があったら人はどう使うのか、いい間違えたときの削除の仕方や、あーえーとなどのケバ取りなどを実際どう音声で指示するかなどの実験が出来たという内容で、たしかにアイディアがあって、そのなにかサービスを作る前にこういった実験は出来た方が楽しいなと感じた1冊でした。