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


関連記事

laravel logo

Inertia使ってみた①

はじめに 以前Laravel Breezeをインストールした際にパッケージに含まれていたInertiaを使ってみたので簡単に紹介したいと思います。 今回はLaravel + Reactの組み合わせで使 ...

GraphQL

いまさら学ぶGraphQL〜概要編〜

はじめに 皆さんは、GraphQLを実際に使ったことがありますか?私は幸いなことに、業務で使う機会がありましたので、調べてみました。今回の記事では、GraphQLの概要について紹介します。 Graph ...

aws

Amazon ECSのタスク定義について

はじめに 前回の記事ではAmazon ECSの機能を全般的に広く浅く紹介しました。今回はAmazon ECSのタスク定義について詳しく調べてみました。 Amazon ECSのタスク定義についておさらい ...

Go言語

Go 1.16でのgo getとgo installの変更点

はじめに Go 1.16から、go getとgo installの役割が明確に分かれました。今回は、Go 1.16からこれらのコマンドがどのように変わったかを紹介します。 go getとgo inst ...

rails

私たちのFactoryGirlとRspecの使用ルール その1

はじめに こんにちは、tonnyです。 最近、私たちはRailsのテストにRspecを使用しております。 (テストレコードの作成にはFactoryGirlを使用しています。) 今回は私たちのグループ内 ...

フォロー

blog-page_side_responsive

2017年3月
日 月 火 水 木 金 土
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

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