RailsTutorialを進めていく中で躓いたことや、ポイントだと感じたこと

はじめに

こんにちは、Tomuです。今回がQiita初投稿となります。
RailsTutorialを進めていく中で、躓いたことやポイントだと感じたことなどを書いていきます。
間違っていることや気になったことがあれば、気軽にコメントしていただけると幸いです。

1章

herokuで変更し、起動コマンド

git commit -a -m "Update Gemfile for Heroku"
git push heroku master
heroku open

1章まとめ

  • Ruby on Railsとは、Web開発のためのフレームワークであり、Rubyプログラミング言語によって記述されている。
  • 事前設定済みのクラウド環境を利用することで、Railsのインストール、アプリケーションの生成、生成されたファイルの編集を簡単に行うことができる。
  • Railsにはrailsという名前のコマンドラインコマンドがあり、rails newで新しいアプリケーションを生成したり、rails serverでローカルサーバーを実行したりできる。
  • コントローラのアクションを追加したり、ルートルーティングを変更したりするだけで- -「hello, world」アプリケーションを作成できる。
  • Gitによるバージョン管理を導入し、Bitbucketの非公開リポジトリにプッシュする理由は、データの喪失を防止し、他の開発者との共同作業を行えるようにするため。
  • 作成したアプリケーションをHerokuの本番環境にデプロイした。

RailsTutorial1章より

2章

2章まとめ

  • Scaffold機能でコードを自動生成すると、Webのあらゆる部分からモデルデータにアクセスしてやりとりできるようになる
  • Scaffoldは何よりも手っ取り早いのがとりえだが、これを元にRailsを理解するには向いていない
  • RailsではWebアプリケーションの構成にMVC (Model-View-Controller) というモデルを採用している
  • Railsが解釈するRESTには、標準的なURLセットと、データモデルとやりとりするためのコントローラアクションが含まれている
  • Railsではデータのバリデーション (validation) がサポートされており、データモデルの属性の値に制限をかけることができる
  • Railsには、さまざまなデータモデル同士を関連付けを定義するための組み込み関数が多数用意されている
  • Railsコンソールを使うと、コマンドラインからRailsアプリケーションとやりとりすることができる

RailsTutorial2章より

2章でGit関連で躓いたこと

  • .ignore ファイルの範囲指定がうまくいっていなかった
  • .idea ディレクトリでコンフリクトが起きていたので、ローカルとリモートで削除してrai
  • deployブランチでmasterをpull

 を行い解決しました

問題点

herokuでデプロイが出来ていない

原因として考えられるのは
ローカルでは問題なく動いていたので、
herokuの本番環境でデータベースのマイグレーションを行なっていないこと

以下を行い解決しました

heroku run rails db:migrate

をiTermより実行して、本番データベースのマイグレーションを行なった
次にホームページからherokuのデプロイを行なったところ出来た

3章

StaticPagesコントローラを生成する(静的ページの作成)

rails generate controller StaticPages home help

3章まとめ

  • 新しいRailsアプリケーションをゼロから作成したのはこれで3度目。今回も必要なgemのインストール、リモートリポジトリへのプッシュ、production環境まで行った
  • コントローラを新規作成するためのrailsコマンドはrails generate controller ControllerName アクション名 (省略可)。
  • 新しいルーティングはconfig/routes.rbファイルで定義する
  • Railsのビューでは、静的HTMLの他にERB (埋め込みRuby: Embedded RuBy) が使える
  • 常に自動化テストを使って新機能開発を進めることで、自信を持ってリファクタリングできるようになり、回帰バグも素早くキャッチできるようになる
  • テスト駆動開発では「red ・ green ・REFACTOR」サイクルを繰り返す
  • Railsのレイアウトでは、アプリケーションのページの共通部分をテンプレートに置くことでコードの重複を解決することができる

RailsTutorial3章より

4章

pメソッド

文字列は、 "" に囲まれて出力されるため、特殊文字(\nや\t)がそのまま出力される

empty?メソッド

"" の中身が半角スペースであってもfalseとなる

"".empty?
=> true

" ".empty?
=> false

4章まとめ

  • Rubyは文字列を扱うためのメソッドを多数持っている
  • Rubyの世界では、すべてがオブジェクトである
  • Rubyではdefというキーワードを使ってメソッドを定義する
  • Rubyではclassというキーワードを使ってクラスを定義する
  • Railsのビューでは、静的HTMLの他にERB (埋め込みRuby: Embedded RuBy) も使える
  • Rubyの組み込みクラスには配列、範囲、ハッシュなどがある
  • Rubyのブロックは (他の似た機能と比べ) 柔軟な機能で、添え字を使ったデータ構造よりも自然にイテレーションができる
  • シンボルとはラベルである。追加的な構造を持たない (代入などができない) 文字列みたいなもの
  • Rubyではクラスを継承できる
  • Rubyでは組み込みクラスですら内部を見たり修正したりできる
  • 「deified」という単語は回文である

RailsTutorial4章より

5章

rails testでつまずいたこと

header.html.erb ファイルで
<%= link_to "sample app", root_path, id: "logo" %>
の文が
```<%= link_to "sample app", 'root
path', id: "logo" %>```
となっていたため、root_path が見つからないとエラーが出ていた

_header.html.erb
<header class="navbar navber-fixed-top navbar-inverse">
<div class="container">
    <%= link_to "sample app", root_path, id: "logo" %>
    <nav>
    <ul class="nav navbar-nav navbar-right">
        <li><%= link_to "Home", root_path %></li>
        <li><%= link_to "Help", help_path %></li>
        <li><%= link_to "Log in", '#' %></li>
    </ul>
    </nav>
</div>
</header>

5章まとめ

  • HTML5を使ってheaderやfooter、logoやbodyといったコンテンツのレイアウトを定義しました
  • Railsのパーシャルは効率化のために使われ、別ファイルにマークアップを切り出すことができます
  • CSSは、CSSクラスとidを使ってレイアウトやデザインを調整します
  • Bootstrapフレームワークを使うと、いい感じのデザインを素早く実装できる
  • SassとAsset Pipelineは、(開発効率のために切り分けられた) CSSの冗長な部分を圧縮し、本番環境に最適化した結果を出力する
  • Railsのルーティングでは自由にルールを定義することができ、また、その際に名前付きルートも使えるようになる
  • 統合テストは、ブラウザによるページ間の遷移を効率的にシミュレートする

RailsTutorial5章より

随時更新していきます

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.