ゼロ進歩なプログラマー

ゼロ進歩な初心者プログラマー

プログラミング初心者から初心者へ

Rails ログイン機能 Noバリデ Yesデバイス

Railsチュートリアルでログイン機能を実装するところがあります

メールアドレス&パスワードの最小最大文字数を決める

有効なメールアドレスかなどをチェックするためのバリデーション(Rails標準搭載のチェック機能)を使ってアカウントの登録とログインをチェックするわけですが

これがまた面倒な作業なのです笑

 

必要な知識なので 時間がある人は実装する

         時間がない人は読んでこんなことするのかと把握する

そして時間のあるなしにかかわらずgem 'devise' とgemのアカウントの登録ログイン機能を使いましょう

なぜかというと その方が楽だしセキュリティが強いから!!

自分で作るシステムはgem などしっかり作り込まれたものより劣ります

かなりの有識者でなければdevise機能のほうがセキュリティが強いでしょう

WindowsのUp dateなどセキュリティ機能が追加されますしノートンやウィルスバスターなどセキュリティソフトを他で管理するのは普通のことです

やってることはほとんど同じと思っていいのでしっかり把握することは大事ですぜひチュートリアルを読んで把握+理解+実装までできると効果的でしょう

 

gemはこういった便利な機能の集合体で中身がわからないように思えますが実際はレゴブロックの家のように便利機能を組み立てたものです

自分で中身を見て勉強する→簡単なgemを作ってみる→改変して自分なりにカスタマイズする

などしてみるのがRailsのプロフェッショナルに近づくものだと思います

既存のものをうまく使うところのスキルも大事ですそのための中身の確認もまた大事!

ということでRailsの前にsinatraを勧めた記事もあるし

sinatraでもdeviseを使えたり簡単なサービスを作れますそこから始めてみては!?

 

yomi06.hatenablog.com

 

VMwareにて仮想マシン 記事にするほどではないもの

新しいPC といってもWindows4GBのもの を買ったので

VMwareにてUbuntuを改良されてるLinuxMintをインストールしました(主にRails用途)

仮想マシンをしてみたかったこともありちょっとしたワクワク

しかし二回ほどなぜかインストール中にログアウトしてログインできない......

 

スリープが原因で英語ながら少し面倒だったけどパワー(電源オプション)から時間によるログアウトやスクリーンセーバーなどをNever設定してインストール完了!

 

普通にLinuxMint入れるのに抵抗なかったのですがなぜかブートできなくてってのもあって仮想化したのでした

これだとアンインストールしたときのレスキュー画面が出ないメリットと

Windowsを起動させるのでそっちにリソースを食うデメリットがあるけど仮想マシンしかできないのだからしょうがない

 

このブログで使うちょっとした画像を切り抜きたい時などLinuxで調べるのが面倒+Gimpが難しいのもあってWindowsのペイントでやってたので仮想でどっちも使える状況は少し恩恵がある

64bitのLinuxMintを入れたのでWineというWindows用のものを動かすやつは使えないのだけれど別にWindowsが動いているので問題はない

 

新しいPC最初はBluetoothでキーボード使えてたけどなぜか使えなくなり普通にUSB接続です Bluetoothのほうが打ちやすいので少し残念。

 

現状持ち運びして使うつもりが全くなかった(タブレットがあるし外でPC使わない)ので興味のあるスティックPCを購入しました

CPUがATOMなので少し残念だけど4GBのRAMと64GBのeMMCが魅力

eMMCはHDDを使ってた自分には別に遅く感じないし省電力なのでプラス要素

容量が少なめだけど正直画像編集などしないからこれだけで余る......外付けもあるし64GBのUSBメモリもある

UPDATEの時はUSBメモリを使えば容量問題なくUPDATEできる

ディスプレイも余ってたマウスキーボードもある 外で使わないのでスティックPCのマイナス点はファン付きでも心もとないこと メモリ増設ができないことくらい

そもそも仕事用として使うなら普通に15万ほどのかそれ以上のレッツノートなどを買うと思う......

 

といった別に記事にするほどもなくTwitterでつぶやくほどのことでもなく雑記になってしまいました

興味がある人は質問でもしてくださいな

ちなみにVANGOODとかいう中国製のスティックPCで64bit WindowsHome Laravelさえできればいいので特に問題はない

AWSでいつでもブラウザのみでコーディングできる強みもある それだとRAM64GBは特に問題ない

スティックPCはテレビの裏接続だと思ってるとおもいますが延長コードつきで不通にディスプレイの前で操作できます

最小設定なのでゲームする人は無理ですね

 

とりあえず報告としてはこんなもんかな

自分はUbuntuの常に左側に表示されるDockみたいなやつが好きではなかったのでWindows似のLinuxMintが一押し

このblog案外環境設定ネタばかりであれなのでRailsSinatra、Laravelなどしっかり自分メモかつ後から見てもわかるほかの人でもわかるような記事を心掛けたいですね

読んでくれる人いるかわかりませんけどね

 

jQueryAjaxなどjavascriptフレームワークは置いといてRails触ってる間はcoffeescriptで簡単なjQueryの操作をcoffeeで書いていくつもり正直ファンクションとかを入力するのが長くて好きじゃないしletとか変数宣言するのが好きじゃないphpを使うなら覚えていきたいものだけれどね!

とりあえずRailsAjaxjQueryを使ったアプリをひとつ作ってLaravelに移行するつもり

Sinatraは通過点として少し触るくらいで詳しくはしないでしょう

 

非同期通信やRailsで使われるMVC2MVC)だけどそうじゃないやつがフレームワークの基本となっているのでそれを触るためのRailsと考えています

 

Ruby on Rails超入門 ログインの項目はデバイスの認証だけで済んでいるだけでチュートリアルにあるバリデーション機能は登校内容にしか使われていずdeviceというGemを推奨しているので自分はそれをメインに使っていこうと思います

ログインの説明で躓いている人は一応流し読みしていてdeviceで認証しましょうなぜならその方がセキュリティとして強いから!

 

Gemの管理は難しいですが中身を確認して使えるようになりたいものです

長文の駄文となってしまいましたがTwitterをすこしお休みしているのでしょうがないと割り切ります

 

Windows subsystemでUbuntuを入れた方多分LinuxMintを仮想で動かすほうがかなり楽だと思うのでかんがえてみてくださいね

 

ちなみに2万円のステックPCですがスペック的には4万のノートPCと変わらないです

 

そしていまのところの問題は仮想マシンの画面サイズが大きくならないところ

夜間モードが効かないところ

まあブルーライトカットメガネなどで特に気にしていない

 

なにか使用とと思えば案外できたりするものですUbuntuなどLAMP環境で使ったりするので実際に触っているのは悪いことではいでしょう

あなたもWSLや仮想マシンで使ってみては 触る気ないので調べてないですがOSXも仮想で動かせるとか?

 

ちなみにRuby on Rails超入門かなり良い出来になっています

借りる期間終わったら買う予定だしLaravelでたら速攻買うつもり

立ち読みなどで内容を確認してみて買うのを決めてはどうでしょうか

 

ということでこの辺で失礼

長文の駄文すいませんぬ

コメントゼロ更新中なのでいつでもコメントどうぞ笑

Aidemy 人工知能特化型無料有り の紹介

f:id:yomi06:20180519105924j:plain

 

Python少し練習してるのですが

無料の講座もあるAidemyの紹介↑

ビデオ通話でのお話が私にとって自信がなくまだやってないのですが

コンテンツが充実してる+初心者向けコースもあるので

そちらに興味がある方はかなりおすすめです

無料コンテンツをこなした後だと割引もあります

 

気になるお値段から  初心者だと足踏みしちゃうかもですがコンテンツまで見てください

無料講座もあるので試してから考えましょう

f:id:yomi06:20180519110407j:plain

f:id:yomi06:20180519110232j:plain

 

コンテンツ

f:id:yomi06:20180519105948j:plain

f:id:yomi06:20180519110005j:plain

 

初心者コース

f:id:yomi06:20180519110101j:plain

 

他言語経験者コース

f:id:yomi06:20180519110030p:plain

拝見はこちらから↓

ざっくり3分で把握 Rails2 コントローラーテスト

前回記事で作られた

home_controller_test.rb の解説と自動テストの重要度

前回記事読んでなく把握できない人は読み直してくださいね

 

yomi06.hatenablog.com

 

 まずは home_controller_test.rb の中身の確認f:id:yomi06:20180517140048p:plain

 

test "should get top" do

  get home_top_url

  assert_response :success

end

テストとして使われているのはこの部分

なにをしているか実際にテストしながら見ていきましょう

f:id:yomi06:20180517140454p:plain

aboutで同じテストをするように書き加えてテスト実行!エラーがもらえます笑

rails test home  コマンドで home_controller_test.rbが実行されるみたい

となんとなく空気だけつかみましょう

undefined local variable or method 'home_about_url'

未定義のローカル変数またはメソッド とGoogle翻訳とりあえずなにかがないことがわかる

 

rails generate controller home top help と top と helpページが作られた時を思い出してみる

 ※ 見るべきは home/top home/help の部分

f:id:yomi06:20180516185937j:plain

 

テストは加えたけどviewsフォルダにabout の html.erbもなければ

routes.rbに記述もしていない

前回の  rails generate controller home top help コマンドで作られたものがない

 

ということで routes.rb に 'home/about' を書き加えてテストを実行!

f:id:yomi06:20180517141754p:plain

変わらずエラー しかしエラーの文が変わってて長くなっている

 

なにか変化があったということでエラー文の比較

上が routes.rbの書き込む前 下が書き込んだ後

f:id:yomi06:20180517141925p:plain

undefined から ActionNotFound に変化しているっぽい

 アクションを作る

 

またCreate

rails generate contorller で作られた

controller内のアクションの追加(コントローラーはアクションが入ってるとイメージしておいてね)

f:id:yomi06:20180517151234j:plain

さらにabout の html.erb viewsフォルダに作ってテスト

f:id:yomi06:20180517142403p:plain

上のエラー文はさっきのエラーで

下半分が新しくテストした部分ですね

注目ポイントは 3 runs, と 0 errors

いままで特に説明していなかったけど

3つのテストを run 行って 0エラー  だったよということ

 

ページ表示は省きますが

~~.html.erbviewsフォルダにつくり  routes.rb  に getで書き加えれば

htmlページとして表示することができます(テストは書かなくてもOK)

 

※じゃあなぜテストが必要なのか???

今はまだ Top Help About の3ページしか作られていません確認は3つのページが表示できるかみるだけで簡単です

しかし更にページを作っていく

例えばクックパッドみたいにいろいろな人が多くのレシピページを作ると

それを1ページ毎に確認するのは無理に近い

ということで

自分で実際に確認することなくエラーとなってないかを手っ取り早く調べる方法がテストを書くことでした

個人で規模の小さいWebサイトを作るときは見落とされがちですが

あなたが大きなサービスに関わりたいのであれば見落としが少なくなり絶対必要な技術だと思います

 

 

前回の記事

yomi06.hatenablog.com

 

ざっくり3分で把握するRails1 g controller

rails generate controller ~~  ~~~

これをさくっと理解しましょう

今回はhome top helpコマンドを打ち込む

f:id:yomi06:20180516185937j:plain

 

rails new のときのように色々作られて驚くことかもしれませんが一つ一つ見れば大したことないです

 

f:id:yomi06:20180516193916j:plain

Createが作られたファイル

 まずはhomeコントローラーファイルですね

 中にしてほしい処理を書きますGetPostなど(今回はGetのみなので省略)

Routeroutes.rbに書き加えられたページ

 tophelpが書き込まれます(簡単に言うとリンク、URL)

f:id:yomi06:20180516195646j:plain

(ruotes.rbファイル↑)

 

 

f:id:yomi06:20180516194033j:plain

Create

 viewsフォルダ内にhomeフォルダが作られます

  homeフォルダは1つのくくりになっていてフォルダのみなのでルートに書き加えられません

   tophelphtml.erbファイルが作られています

   これがhtmlとしてブラウザに出力されます

 

f:id:yomi06:20180516194218j:plain

Create

 testフォルダにhome全体のコントローラーのテストが作られます

 appフォルダの

  helperフォルダにはhomeのhelperファイルが作られます(今回は解説なし)

 

f:id:yomi06:20180516194421j:plain

Create

 appフォルダのassets内のStylesheetフォルダには

  homeのjavascriptフォルダにhome.coffeeJavaScriptに変換される)

  homecssフォルダにhome.scsscssに変換される)

 が作られます

 

testhelperは今回省略

generate controller home top help のコマンドは

 homeフォルダが作られ

  topとhelpのhtml と そのページへのリンク、

  homeで使われるcssとjavascrioptのファイルが作られた

 

つまりgenerate controllerは ほぼhtml(普通の見た目を)作った

と解釈しておきましょう

 

そして作られた見た目 自分のファイルの場所を教えてくれますね(それと装飾がない)

f:id:yomi06:20180516195350j:plain

 

プログラムしてる人必見 ハマったら質問しよう

teratailって知ってますか?

とりあえず見てみたらわかるのですが

○初心者から登録しよう 同じところでの疑問などが書かれていることも

○上級者の皆さん手を貸してください!!

スクールとかメンター制度があり疑問を解決するのはGoogleで検索するか

お金を払うかの二択みたいになっていて簡単な疑問などが割と答えが見つからなかったりします Twitterなどで同じ人に質問をするなど遠慮してできないことがあります

経験者の皆様どうか手をお貸しください

ここまで読むとわかっていると思いますが

簡単に言うとプログラミング限定のYahoo知恵袋みたいなものです

1時間に10個も質問されている

30分以内に回答が来ることが多い素晴らしいサービスです

プロゲートの後やアイディアのための知識、おすすめの本

gemとか色々な質問ができると思います

Qiitaはレベル高すぎるって人には質問で回答がもらえるので特におすすめです

体験記

かなり質問雑な質問で怒られたので載せたくないのですが色々な人がアドバイスしてくれるのがわかるため公開します

f:id:yomi06:20180514192617p:plain

 

f:id:yomi06:20180514192714p:plain

 

f:id:yomi06:20180514192730p:plain

 

f:id:yomi06:20180514192746p:plain

 

f:id:yomi06:20180514192757p:plain

Railsのインストール Windows Subsystem for Linux Ubuntu

Windowsのストアを見たら18.04のUbuntuがあったのでそれをインストールしてRails使えるまでやってみようという話

完璧に自分用メモに近い

 

ストアでUbuntuを入手する

f:id:yomi06:20180513094410j:plain

 

この先真っ暗な画面が続きます ばーって色々インストールされたりする部分はカットして入力したコマンドだけの記録

 

UsernameとPasswordを決めてと言われるので普通に決める

 

update upgradeが必要なので

sudo apt update

sudo apt upgrade

と2つのコマンドでupdate upgradeをする

 

sudo apt rbenv ruby-dev ruby-build

Ruby関係を一括インストールrbenvはRubyバージョン管理に使う

rbenv install -list

rbenv の Listからinstallできるバージョンの確認する 2.4.1が現在の安定版(5/13)

rbenv install 2.4.1 でバージョンを指定してインストール

rbenv global 2.4.1 でバージョンを指定する(他のバージョンを入れてないなら必要なし)

ruby -v でインストールできたか+バージョンの確認

rbenv exec gem install

これでrbenvに入っているgemを使えるようになるらしい

Rubyをrbenvで入れてたときは使ってたけどバージョン管理せず入れてたから気にしてなかった)

 

sudo apt install nodejs

Rubyのgemで使うらしいNode.jsのインストール

sudo apt install sqlite3

デフォルトで使うようになっている&&Railsチュートリアルなどでも使われている

データベースのSQlite3のインストール

 

sudo gem install rails 5.1.3

ここでやっとRailsのインストール

Rails new 〜

からcd〜 

rails serverで

localhost:3000にアクセスしてOK!!

 

追記

umask設定しておかないとRailsが警告を出すので設定しておきます。らしい確かに遅くて変なのでてた……

echo 'umask 022' >> ~/.bash_profile
source ~/.bash_profile

 

f:id:yomi06:20180513132033j:plain

 

このように他のgemもinstallで機能を足していく

 

yomi06.hatenablog.com