Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
怖い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

1,136 views

Published on

社内勉強会用

Published in: Technology
  • Login to see the comments

  • Be the first to like this

怖い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. 次回 リファクタしてきます!

×