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


関連記事

RubyのHanamiチュートリアルをやってみた

1 はじめに2 紹介2.1 Hanamiとは?2.2 Hanamiを選ぶ理由2.2.1 軽量2.2.2 アーキテクチャとして2.2.3 スレッドセーフ3 チュートリアルのための準備4 実践4.1 はじ ...

Go言語

go:embedとGo 1.16、1.17での変更点まとめ

1 はじめに1.1 変更点一覧2 go:embedとは3 go:embedの使い方3.1 基本的な使い方3.2 複数のファイルを埋め込む3.3 異なるディレクトリのファイルを埋め込む3.4 ディレクト ...

laravel logo

Laravelの便利メソッドupsert

1 はじめに2 upsertメソッドとは3 使い方4 タイムスタンプ5 生成SQL6 さいごに7 おすすめ書籍 はじめに LaravelでUPSERTを行いたい場合にupdateOrCreateメソッ ...

Go言語

Golangのsyncパッケージによる同期・排他制御

1 はじめに2 sync.WaitGroup3 sync.Mutex4 sync.RWMutex5 sync.Map6 sync.Once7 sync.Pool8 さいごに9 おすすめ書籍 はじめに ...

laravel logo

Server-Side Eventsを触ってみた

1 はじめに2 Server-Side Events(SSE) とは3 実装してみる3.1 動作の流れ3.2 Laravel側3.3 React側4 Chat GPTのレスポンス5 さいごに6 おすす ...

フォロー

blog-page_side_responsive

2017年3月
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

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