BackEnd

半年ぶりにRails Tutorialをやったメモ

投稿日:2017年3月7日 更新日:

はじめに

Railsを触り始めて半年ほどたちました、tonnyです。
復習もかねてRails Tutorialを実施したので、そのメモを残します。
やはり2回目でも気づくことは多いので、非常に勉強になりました。

環境について

  • Mac OS X Yosemite 10.10.5
  • Ruby 2.4.0
  • Rails 5.0.1

Railsは先日バージョン5.0.2がリリースされたそうですね。
http://weblog.rubyonrails.org/2017/3/1/Rails-5-0-2-has-been-released/

備忘録

Rubyのアップデート

Rubyのバージョンはrbenvで管理しています。
そのため、まずはrbenvのRubyに2.4.0を追加します。

下記のサイト様を参考にさせていただきました。
rbenvをupdateして最新のRubyバージョンをインストールする

今回のプロジェクト内で2.4.0を使用したいので、まずはプロジェクトを作成します。
そしてプロジェクト内でrbenvの指定をします。

ちなみに、globalを使用するとデフォルトのバージョンを変更できます。

Guardを起動するとエラーになる

序盤でGuardによって監視しています。
ただ、以下のようなエラーが出た場合、Rubyを入れなおすことが一般的なようです。

ただ、再度ビルドせずに済む方法はないかと探していたところ(面倒だとは言ってない)、
下記のIssueに記載がありました。
https://github.com/pry/pry/issues/1579

ちなみに

Pryは対話的にRubyを実行できるツールのことです。
Rubyに標準で搭載されているirbの代替です。
https://github.com/pry/pry

readlineはコンソールなどで入力するコマンドを読み取るgemのようです。
https://github.com/ConnorAtherton/rb-readline

minitestが、個別でやると成功するのに、まとめて実行すると失敗する

どうやらSpringが悪さをしているようなので、全部killしました。

Springとは

アプリケーションプリローダーのことであり、Rails4.1から導入されたそうです。
railsコマンドが実行される際に、Springサーバーが起動し、2回目以降のライブラリのロード時間を短縮してくれます。
rails console は初回起動に時間がかかっても、2回目以降は素早くたちあがると思います。

ちなみにRails Tutorialではdev環境で使用しています。

rails serverでポートが使用されていて失敗する

下記のようなエラーがでて、 rails server が立ち上がりませんでした。

3000番ポートが使用されているようなので、 lsof で確認します。
こちらのブログ様が、用途ごとにまとめられており分かりやすかったです。
lsof:オープンしているファイルを調べる

aタグをtarget=”_blank”にするときはrel=”noopener”をつける

これはまだよく分かっておりませんが、備忘録としてQiitaの記事を載せておきます。
http://qiita.com/memolog/items/9913b0067e4e6883ed17

開いた記事から画面操作ができてしまうことが問題のようです。

default_scopeで”order by id desc”

default_scopeは使ったことはないものの、事前知識はありました。
デフォルトの条件を指定するので、 order by id desc と指定しておけばidの降順がデフォルトになります。

Micropostモデルにdefault_scopeで指定すると、Micropost.firstが降順で最初の1件を取得することは理解していました。
ただ、Micropost.lastが order by id asc になることは驚きました。

Railsの方で判断して変えてくれるのですね。

herokuのファイルを確認する

heroku run bash でUNIXコマンドを使用してherokuアプリ内のファイルを確認することができます。

さいごに

忘れていたこと、そもそも分かった気になっていたこともあり、2回目とはいえ勉強になることが多いです。
やはりRails Tutorialは良い教材であることを再認識しました。

ログイン認証、および最終章あたりは理解が不十分な気がしているので、また時間を置いて実践したいと思います。

blog-page_footer_336




blog-page_footer_336




-BackEnd
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Stripe Connectを使って複合プランの継続課金を実装

1 はじめに1.1 想定する継続課金1.2 想定するシチュエーション2 継続課金商品の作成2.1 プランの継続課金商品の作成2.2 ID数の継続課金商品の作成3 実装3.1 プランAとID数を30契約 ...

php logo

PHPでGmail APIを利用してメールデータを取得してみる その2

1 はじめに2 メールの内容取得3 MessagePartオブジェクト3.1 件名3.2 本文4 multipartの場合4.1 本文の取得5 全文6 さいごに7 おすすめ書籍 はじめに 前回は、Gm ...

laravel logo

LaravelのFacade(ファサード)とは? 何気なく使用していた裏側の仕組みを解説!

1 はじめに1.1 Facadeを使用しているクラス2 Facadeの仕組み3 Facadeの作成3.1 サンプルコードに必要な実装3.2 Serviceの作成3.3 Facadeクラスの作成3.4 ...

Go言語

Go言語の基礎〜基本構文その1〜

1 はじめに2 変数2.1 変数の定義2.2 暗黙的な定義2.3 varと暗黙的な定義2.4 ローカル変数とパッケージ変数3 定数3.1 const3.2 iota4 関数4.1 関数定義の基本4.2 ...

laravel logo

Laravel Authのパスワードリセット機能をカスタマイズする

1 はじめに2 準備2.1 Auth2.2 mailhog3 ユーザー登録とログイン4 パスワードリセットのカスタマイズ4.1 ルーティング確認4.2 view編集4.3 認証処理の編集5 リセット画 ...

フォロー

blog-page_side_responsive

2017年3月
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。