puts 'Hello Ruby on Rails World'
[fit] bit.ly/ror-class-md
- Marp https://yhatt.github.io/marp/
- Deckset http://www.decksetapp.com/
- 슬랙 가입
- 깃헙 가입
- 클라우드9 가입
이메일 제출 주소 http://bit.ly/ror-class-email
최신버전 5.0 교재는 4.2 버전
- 카카오
프로젝트 초반에 쓴다고 합니다. 카카오스토리도 초기에는 RoR로 만들었다고 합니다.
- 트위터
여기도 초반에는 RoR 로 만들었다고 합니다. 프로토타이핑 전문?
- 쿡패드
5576만명 가입·230만개의 요리법… 日인구 절반 즐겨찾는 레시피 사이트
“음식으로 세계인 미소 늘리겠다” 창업주 사노 아키미츠의 철학 실천 창업 20년, 시총 2조4000억원 서비스로
^ 카카오가 5.7조
-
그밖에 AirBnB, 깃허브 등등 https://www.netguru.co/blog/top-10-sites-built-with-ruby-on-rails-2016
-
한국 서비스 http://world.rorlab.org/
DHH 데이비드 하이네마이어 핸슨 David Heinemeier Hansson http://dareyourself.net/2641
Matz 마츠모토 유키히로 松本行弘 http://www.bloter.net/archives/184564
Matz 와 나
- 강사 페이스북 https://www.facebook.com/onesup
https://www.ruby-lang.org/ko/documentation/quickstart/
모델과 컨트롤러의 분리
일을 쪼개고 싶다. -> 단순 업무는 알바 시키고 싶다.
Fat model
^ 랭킹 모델
Thin Controller
html.erb
패턴을 적용한 프레임워크
#[fit] 그게 rails
rails new my_app
설정보다 관례 http://rubyonrails.org/doctrine/#convention-over-configuration
독특함보다는 표준 gem 도 많이 쓰는 gem 을 더 많이 쓰는 경향 DRY - Don't repeat yourself. 복붙 금지
rails scaffold 모델명(resource) 컬럼:type 컬럼:type
rails scaffold User name:string age:integer
- scaffold 실행 뒤엔 db/migrate 파일을 확인 후
- rake db:migrate 실행
- rake 실행 후에는 서버 재시작 해야 함
rails g migration add_telephone_to_users telephone:string
- 단수와 복수 구분
- 리소스별로 model view controller 이름 통일
- 기타등등
https://gist.github.com/iangreenleaf/b206d09c587e8fc6399e
belongs_to
has_many
has_many through
resource.all
resource.children_resources
resource.children_resources << children_resources
resource.children_resources.destroy_all
http://guides.rubyonrails.org/association_basics.html#has-many-association-reference
rails g scaffold provider name email
rails g scaffold user name email
rails g model order user:references product:references
rails g scaffold products name provider:references price
ActiveAdmin
gem 'activeadmin', '~> 1.0.0.pre4'
gem 'inherited_resources', git: 'https://github.com/activeadmin/inherited_resources.git'
http://guides.rorlab.org/routing.html
CRUD: Create Read Update Delete
CRUD -> Create Get Put Delete
gem 'carrierwave', '>= 1.0.0.rc', '< 2.0'
gem 'carrierwave-imageoptimizer', git: 'https://github.com/zaiste/carrierwave-imageoptimizer.git'
gem 'mini_magick'
rails migration add_contents_image_to_products contents_image
mount_uploader :contents_image, ContentsImageUploader
https://gist.github.com/onesup/03892e6947cd16646754aa00b0d40b39#file-uploader_input-rb
image_preview = -> {
if f.object.contents_image.present?
image_tag(f.object.contents_image.url)
else
content_tag(:span, "no thumbnail image yet")
end
}
f.input :contents_image, as: :uploader, hint: image_preview.call(), removable: false
row :contents_thumbnail do img src: item.contents_thumbnail, height: 200
동적인 parameter 를 함수에 전달 할 때 사용 자세한 설명 http://blog.nacyot.com/articles/2015-12-07-ruby-proc-and-lambda/