怖いRails
株式会社OCC

Yutaka Kinjo
motivation
GitHub の Contritions のカレンダー好き

埋めたくなる

作ってみたい
の規約怖い
Rails は規約が定められている

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

見えない規約に怯える日々が始まる
とりあえず rails new
$ rails new acscore

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

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

この状態で Github にpush

この状態で heroku にpush

heroku に deploy...
とりあずdevise install
$ gem ‘devise’

$ bundle install

$ rails g devise install 

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

$ rails g devis...
devise 続き
$ rails g devise user 

user model が生成

$ rake db:migrate

devise.rb に secret key を設定

ENV[‘DEVISE_SECRET_KEY’]
...
user に紐づくScore
user
score
score
score
score
scaffold しちゃうよね
$ rails g scaffold Score user_id:integer

view/model/controller が生成

migration ファイルもできる

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

...
scaffold しちゃうよね
$ rails g scaffold Score user_id:integer

view/model/controller が生成

migration ファイルもできる

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

...
Relation
user model

has_many :scores

score model

belongs_to :user

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

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

curre...
ここから
home page を作りたい
$ rails g controller home index

home という controller と

views/home/index.html.erb

home controller

before...
結果から
これができた
http://pure-eyrie-5569.herokuapp.com/
https://github.com/yutakakinjyo/acscore
結果から
いや、こうしたい...
まあ、おいおいね
MVC怖い
home controller でやってること

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

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

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

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

最終的...
MVC怖い
home#index view でやってること

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

score model がやってること

なし

どこにどうあるべき?
MVC怖い
score model

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

home#index view

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

controller

引き渡すだけ?
まとめ
目にみえない規約に怯える毎日

もう書いてさっさと失敗したほうが良さそう
次回
リファクタしてきます!
Upcoming SlideShare
Loading in …5
×

怖いRails

986 views

Published on

社内勉強会用

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
986
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
2
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

怖いRails

  1. 1. 怖いRails 株式会社OCC Yutaka Kinjo
  2. 2. motivation GitHub の Contritions のカレンダー好き 埋めたくなる 作ってみたい
  3. 3. の規約怖い Rails は規約が定められている 規約に沿うことで高速な開発ができる 見えない規約に怯える日々が始まる
  4. 4. とりあえず rails new $ rails new acscore 何はともあれこのコマンド 開発に必要な一式が生成される この状態で Github にpush この状態で heroku にpush heroku に deploy するときは production の db は pg にする
  5. 5. とりあず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
  6. 6. 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=
  7. 7. user に紐づくScore user score score score score
  8. 8. scaffold しちゃうよね $ rails g scaffold Score user_id:integer view/model/controller が生成 migration ファイルもできる 他にもいろいろ生成される怖い! $ rake db:migrate でテーブル生成
  9. 9. scaffold しちゃうよね $ rails g scaffold Score user_id:integer view/model/controller が生成 migration ファイルもできる 他にもいろいろ生成される怖い! $ rake db:migrate でテーブル生成 user_id が規約 model名_id
  10. 10. Relation user model has_many :scores score model belongs_to :user 関係性を Rails に教えてあげる あとは カラムに持っているuser_id で紐付く current_user.scores なにそれ怖い!
  11. 11. ここから
  12. 12. home page を作りたい $ rails g controller home index home という controller と views/home/index.html.erb home controller before_filter :authenticate_user! 認証していないアクセスは飛ばされる これは別に怖くない!
  13. 13. 結果から これができた http://pure-eyrie-5569.herokuapp.com/ https://github.com/yutakakinjyo/acscore
  14. 14. 結果から いや、こうしたい... まあ、おいおいね
  15. 15. MVC怖い home controller でやってること 現在の時刻から一ヶ月前を取得 一ヶ月前から現在までの日数を計算 一日ずつ走査してScoreの日付と同様なら+1する スコアが一定以上なら色をlightgreenにする 最終的に日付と色を view に引き渡す
  16. 16. MVC怖い home#index view でやってること controller から渡ってきた配列の数だけtableの列 を生成し、bgcolor を設定する score model がやってること なし どこにどうあるべき?
  17. 17. MVC怖い score model 日数とスコアの配列を返すべき? home#index view 必須の配列をスコアから色を計算するべき? controller 引き渡すだけ?
  18. 18. まとめ 目にみえない規約に怯える毎日 もう書いてさっさと失敗したほうが良さそう
  19. 19. 次回 リファクタしてきます!

×