[ruby on rails]githubDesktopを使ってgithubリポジトリにディレクトリをULする方法


書いてあること

1.新規アプリ作成(バージョン指定をしてrails newをする)
2.Git管理下に置いてリモートリポジトリへ
・.gitignoreについて
3.haml実装
4.コントローラー・ビュー・ルーティングの作成
5.Sassの導入(リセットcss"YUI3"導入)
6.ビューをマークアップ(大枠作成)
7.参考ページ
・参考ソース
8.終わりに

1.新規アプリ作成

Ruby on Railsのバージョンを変更

ターミナル
$ cd ~  # ホームディレクトリに移動
$ gem install rails --version="5.0.7.2"
#バージョン指定

*railsを指定するのはなぜ?(Railsのバージョンによって入っているファイルやGemが異なります。なので設定方法が異なってきます。今回はこのバージョンで作っていますが、もちろんバージョン設定なしでのrails newも全然ありと思います。12/4追記)

ターミナル
$ rbenv rehash

バージョン指定して新規作成

cdでアプリを作りたいディレクトリを指定して移動

ターミナル
$ rails _5.2.3_ new 新規アプリ名 -d mysql

cdで今作ったディレクトリへ移動

ターミナル
$ rails db:create

2.Git管理下に置いてリモートリポジトリへ

【参照】
アプリ作成〜SNSグループ作成と連携

  • gitの管理下におく
ターミナル
/git管理下に置きたいディレクトリへcdで移動し下記実行/
$git init 
$git add .   /.は全部という意味/
$git status /ちゃんと移動したか確認/
  • ローカルリポジトリに追加(コミットするよ)
ターミナル
$git commit -m "initial commit"
  • GitHubDesktopの[CurrentRepository]でaddする

次の画面はこれ

リモートリポジトリ作成完了!

.gitignore
コミットしたくないファイル・ディレクトリを指定できる設定ファイル。画像投稿機能などがあるものは画像が保管されるpublic/uploadsディレクトリを.gitignoreに追加しておくと、画像がGithubにコミットされない

.gitignore
# 末尾に次の記述を追加
public/uploads/*

3.haml実装

・gem導入

Gemfile
gem "haml-rails", ">= 1.0", '<= 2.0.1'
# 最下部に記載
ターミナル
$ bundle

導入完了

・hamlに変換

ターミナル
$ rails haml:erb2haml
途中でターミナルに出てきたら
Would you like to delete the original .erb files? (This is not recommended unless you are under version control.) (y/n)
#yを入力してエンター

hamlへ変換完了

4.コントローラー・ビュー・ルーティングの作成

rails gの前にやっておくこと
不要なファイルを生成しないように記述しておく

config/application.rb
# 省略
(例)
module ChatSpace
  class Application < Rails::Application
    config.generators do |g|
      g.stylesheets false #←このfalseで作成しないファイルを指定できます
      g.javascripts false
      g.helper false
      g.test_framework false
    end
  end
end

コントローラ作成

ターミナル
$ rails g controller コントローラ名(例:popcorn)

コントローラにindexアクション作るよ

popcorn_controller
def index
end

app/views/コントローラ名と同じ名前のディレクトリ/index.html.hamlを作成

(例)app/views/popcorn/index.html.haml
hello haml!(おすきに入力)

ルーティングを設定(root_pathにアクセスした場合indexに飛ぶ設定)

routes.rb
root to: 'popcorn#index'
#'コントローラ#indexのビューへ飛んでね'の意味

5.Sassの導入(リセットcss"YUI3"導入)

application.cssは削除し、application.scssを作成

application.scss
@import "scssファイル名";
#importしたいファイル名の頭は_(アンダーバー)始まり。

_reset.scssをapplication.scssと同じディレクトリ内に作成

YUI3導入
YUI3
Source code(zip)をダウンロードしてファイルを開き全てコピーして_reset.scssに貼り付け

application.scss
@import "reset";

6.ビューをマークアップ(大枠作成)

紙にボックスの配置を書いて命名する(後でどこに何の名前のクラスを配置したか見返しやすく、sassを当てたりイベント発火させるクラスがわかりやすくなって便利)

7.参考ページ

参考ソース

_reset.scss
/*
    TODO will need to remove settings on HTML since we can't namespace it.
    TODO with the prefix, should I group by selector or property for weight savings?
*/
html{
    color:#000;
    background:#FFF;
}
/*
    TODO remove settings on BODY since we can't namespace it.
*/
/*
    TODO test putting a class on HEAD.
        - Fails on FF.
*/
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td {
    margin:0;
    padding:0;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
fieldset,
img {
    border:0;
}
/*
    TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
*/
address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
    font-style:normal;
    font-weight:normal;
}

ol,
ul {
    list-style:none;
}

caption,
th {
    text-align:left;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size:100%;
    font-weight:normal;
}
q:before,
q:after {
    content:'';
}
abbr,
acronym {
    border:0;
    font-variant:normal;
}
/* to preserve line-height and selector appearance */
sup {
    vertical-align:text-top;
}
sub {
    vertical-align:text-bottom;
}
input,
textarea,
select {
    font-family:inherit;
    font-size:inherit;
    font-weight:inherit;
    *font-size:100%; /*to enable resizing for IE*/
}
/*because legend doesn't inherit in IE */
legend {
    color:#000;
}

8.終わりに

githubのリモートへのあげ方すぐ忘れてしまうので備忘録として。
MVCの流れを追いつつ変数(インスタンス変数)の定義の仕方や記述の仕方が甘いので、
そこをまとめたいと思うのですが、整理しながらだと思ったようにかけないですね(あれもこれも詰め込みたくなるので)

上手な頭の中身の整理方法があったらぜひ教えてくださいませφ(・
記述ミスや説明不備がございましたらご指摘いただければ幸いです。