#書いてあること
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"
リモートリポジトリ作成完了!
.gitignore
コミットしたくないファイル・ディレクトリを指定できる設定ファイル。画像投稿機能などがあるものは画像が保管されるpublic/uploadsディレクトリを.gitignoreに追加しておくと、画像がGithubにコミットされない
# 末尾に次の記述を追加
public/uploads/*
##3.haml実装
・gem導入
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
の前にやっておくこと
不要なファイルを生成しないように記述しておく
# 省略
(例)
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アクション作るよ
def index
end
app/views/コントローラ名と同じ名前のディレクトリ/index.html.haml
を作成
hello haml!(おすきに入力)
ルーティングを設定(root_pathにアクセスした場合indexに飛ぶ設定)
root to: 'popcorn#index'
#'コントローラ#indexのビューへ飛んでね'の意味
##5.Sassの導入(リセットcss"YUI3"導入)
application.css
は削除し、application.scss
を作成
@import "scssファイル名";
#importしたいファイル名の頭は_(アンダーバー)始まり。
_reset.scss
をapplication.scssと同じディレクトリ内に作成
YUI3導入
YUI3
Source code(zip)
をダウンロードしてファイルを開き全てコピーして_reset.scss
に貼り付け
@import "reset";
##6.ビューをマークアップ(大枠作成)
紙にボックスの配置を書いて命名する(後でどこに何の名前のクラスを配置したか見返しやすく、sassを当てたりイベント発火させるクラスがわかりやすくなって便利)
##7.参考ページ
参考ソース
/*
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の流れを追いつつ変数(インスタンス変数)の定義の仕方や記述の仕方が甘いので、
そこをまとめたいと思うのですが、整理しながらだと思ったようにかけないですね(あれもこれも詰め込みたくなるので)
上手な頭の中身の整理方法があったらぜひ教えてくださいませ_φ(・_・
記述ミスや説明不備がございましたらご指摘いただければ幸いです。