Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@knknkn1162

rail tutorial 勉強メモ (1~7章)

rail tutorial 勉強メモ (1~7章)

はじめに

  • rails tutorial http://railstutorial.jp/chapters/log_in_log_out?version=4.2
    Rails 4.2 (第3版)をやってます。

  • まだ半分... 長い!

  • 前提知識ほぼゼロ(プログラミング自体の経験はあり(組み込み系:(C++), Pythonなど)、Web開発は全く未経験)でスタート

  • いろいろ他人様のWebページを参照していますが、間違ってたら自分の責任です... (指摘していただけると、勉強になります)

  • クラウド環境(rails tutorial にそって、cloud9を使用)での作業

  • 作ったプロジェクトのディレクトリは'workspace/sample_app'とします。

  • 所要期間 : (断続的に)7,8日間(ただし、コマンド以外は全体像を俯瞰したかったのでコピペしながら進めた。本読んだ時間は除く)

用語

rails関係

  • gem

    多くのプログラミング言語と同様に、Ruby にも幅広いサードパーティのライブラリが提供されています。
    それらのほとんどは “gem” という形式で公開されています。
    https://www.ruby-lang.org/ja/libraries/

  • Bundler...Rubyのライブラリ管理ツール

GemfileにいれたいGemパッケージをかきかき
==> Gemfileを`bundle install`
==> 依存ファイルもろとも、バージョンがGemfile.lockに書き込まれる。

<== Gemfile.lockがない状態で、他の環境で後日`bundle install`
    ==> 依存ファイルのバージョンが違ってしまい、同一環境で開発ができない! 

ということで、チーム間で同一の開発環境を簡単に構築できます。

http://qiita.com/hisonl/items/162f70e612e8e96dba50
を参考にさせていただきました。

アーキテクチャ関係

  • アーキテクチャ:システムを作り上げるための物理レベルの組み合わせ

  • REST アーキテクチャ ... Webアプリケーションの設計規約(というか、制約).「リソース」(Web上の情報)をどう扱うかに対する考え方。この制約を入れることで、ネットワークの性能劣化を防いだり、サーバーの負荷を軽減したり、メソッド数が限定されているので、プロトコルがシンプルになる。

    • RESTful ... RESTの制約に従ってRESTらしい振る舞いをするシステム。RESTfulなWebサービスみたいな言い方をするみたい。

本をあげるとしたら、
Webを支える技術-HTTP、URI、HTML、そしてREST
が良さげ。

  • CRUD(create, read, update, delete)
CRUD名 意味 HTTPメソッド
Create 作成 POST(URIの決定権はサーバー側)/PUT(クライアント側)
Read 読み込み GET(情報がURIに付属する)
Update 更新 PUT
Delete 削除 DELETE
  • MVC モデル

http://www.slideshare.net/mokemokechicken/iosandroidmodel
がわかりやすいと思います!

MVCに至る流れとしては、
プロになるためのWeb技術入門」-――なぜ、あなたはWebシステムを開発できないのか
がいいと思います。


実行、確認

github, heroku

origin ... レポジトリの場所(URL)の別名 (だいたいoriginで構わない)
master ... ブランチの名前

  • 初回
$ git init
$ git add -A
$ git commit -m "commit"
# あらかじめhttps://github.comに行って、ユーザー登録して、New Repositoryのボタンをポチッと押して、
# sample_appレポジトリを作っておきましょう。(忘れると、sshは?とか色々聞かれてハマリます
$ git remote add origin https://github.com/<username>/sample_app.git
# -uはレポジトリとブランチの対応付け(2回目以降は同じならば省略できる)
# gitに慣れないうちは、git pushの引数とかは省略せずに書く方が吉!
$ git push -u origin <master or branch-name>
# 本番環境にデプロイ (deploy: デプロイ) する場合
$ heroku login
$ heroku keys:add
$ heroku create 
#もしくは、heroku create <herokuのアプリ名>
$ git push <herokuのアプリ名 or heroku> master

  • 2回目以降
$ git add -A
$ git commit -m "commit"
$ git push -u origin <master or branch-name>
# 本番環境にデプロイ (deploy: デプロイ) する場合
$ git push <herokuのアプリ名 or heroku> master

  • テスト環境(test),開発環境(development),本番環境(production)の3種類ある。 sample_app/config/environment内に、test/development/production.rbがあって、それぞれの環境に応じて、configをいじれるみたい。
environment サーバー実行 push
development rails server -b $IP -p $PORT git push origin master
production heroku open or push後のurlをクリック git push heroku master

はまったところ

  • gitやbundle execなどは、workspace内ではなく、プロジェクトのディレクトリ内でコマンドを走らせましょう
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?