怖いrails

19
怖いRails 株式会社OCC Yutaka Kinjo

Upload: yutaka-kinjyo

Post on 08-Jul-2015

484 views

Category:

Technology


0 download

DESCRIPTION

社内勉強会用

TRANSCRIPT

Page 1: 怖いRails

怖いRails株式会社OCC

Yutaka Kinjo

Page 2: 怖いRails

motivationGitHub の Contritions のカレンダー好き

埋めたくなる

作ってみたい

Page 3: 怖いRails

謎の規約怖い

Rails は規約が定められている

規約に沿うことで高速な開発ができる

見えない規約に怯える日々が始まる

Page 4: 怖いRails

とりあえず rails new$ rails new acscore

何はともあれこのコマンド

開発に必要な一式が生成される

この状態で Github にpush

この状態で heroku にpush

heroku に deploy するときは production の db

は pg にする

Page 5: 怖いRails

とりあずdevise install$ gem ‘devise’

$ bundle install

$ rails g devise install

間違ってinstallモデルが生成される(T_T)

$ rails g devise:install

こっちが正解

config/initialize/deviser.b

config/locales/devise.en.yml

Page 6: 怖いRails

devise 続き$ rails g devise user

user model が生成

$ rake db:migrate

devise.rb に secret key を設定

ENV[‘DEVISE_SECRET_KEY’]

heroku 側に secret key を設定

$ heroku config:set DEVISE_SECRET_KEY=

Page 7: 怖いRails

user に紐づくScore

user

score

score

score

score

Page 8: 怖いRails

scaffold しちゃうよね

$ rails g scaffold Score user_id:integer

view/model/controller が生成

migration ファイルもできる

他にもいろいろ生成される怖い!

$ rake db:migrate でテーブル生成

Page 9: 怖いRails

scaffold しちゃうよね

$ rails g scaffold Score user_id:integer

view/model/controller が生成

migration ファイルもできる

他にもいろいろ生成される怖い!

$ rake db:migrate でテーブル生成

user_id が規約

model名_id

Page 10: 怖いRails

Relationuser model

has_many :scores

score model

belongs_to :user

関係性を Rails に教えてあげる

あとは カラムに持っているuser_id で紐付く

current_user.scores

なにそれ怖い!

Page 11: 怖いRails

ここから

Page 12: 怖いRails

home page を作りたい $ rails g controller home index

home という controller と

views/home/index.html.erb

home controller

before_filter :authenticate_user!

認証していないアクセスは飛ばされる

これは別に怖くない!

Page 13: 怖いRails

結果から

これができた

http://pure-eyrie-5569.herokuapp.com/https://github.com/yutakakinjyo/acscore

Page 14: 怖いRails

結果から

いや、こうしたい...

まあ、おいおいね

Page 15: 怖いRails

MVC怖いhome controller でやってること

現在の時刻から一ヶ月前を取得

一ヶ月前から現在までの日数を計算

一日ずつ走査してScoreの日付と同様なら+1する

スコアが一定以上なら色をlightgreenにする

最終的に日付と色を view に引き渡す

Page 16: 怖いRails

MVC怖いhome#index view でやってること

controller から渡ってきた配列の数だけtableの列を生成し、bgcolor を設定する

score model がやってること

なし

どこにどうあるべき?

Page 17: 怖いRails

MVC怖いscore model

日数とスコアの配列を返すべき?

home#index view

必須の配列をスコアから色を計算するべき?

controller

引き渡すだけ?

Page 18: 怖いRails

まとめ

目にみえない規約に怯える毎日

もう書いてさっさと失敗したほうが良さそう

Page 19: 怖いRails

次回

リファクタしてきます!