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


関連記事

js

Moment Timezoneを使ってJavaScriptで日付を変換する

1 はじめに2 Moment Timezone2.1 セットアップ2.2 使用例3 Moment Timezoneの機能3.1 タイムゾーンの一覧を表示する3.2 現在のタイムゾーンを表示する3.3 ...

aws

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

1 はじめに1.1 Amazon ECSのタスク定義についておさらい2 タスク定義3 アプリケーションのアーキテクチャ3.1 Fargate起動タイプ3.2 EC2起動タイプ4 タスク定義パラメータ4 ...

laravel logo

[Laravel]データベースの暗号化について考えてみる

1 はじめに2 環境3 Laravelでの暗号化4 暗号化されたカラムは、そのままではLIKE検索ができない4.1 問題点4.2 解決案1:全件取得してPHP側でがんばって検索する4.3 解決案2:暗 ...

postgresql

PostgreSQLでテーブルをパーティショニングする

1 はじめに2 パーティショニングとは3 PostgreSQLでのパーティショニング3.1 パーティションテーブルでの制約3.2 パーティショニングの種類4 パーティションテーブルを定義する4.1 古 ...

laravel logo

Laravelの開発環境構築

1 はじめに2 開発環境構築2.1 Homestead2.2 Laradock3 Laradockで開発環境構築3.1 Laradockのダウンロード3.2 コンテナの設定ファイルを作成3.3 コンテ ...

フォロー

blog-page_side_responsive

2017年3月
 1234
567891011
12131415161718
19202122232425
262728293031  

アプリ情報

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