Skip to main content
Rails #2
http://github.com/rocodev/artstore
( 請⼤大家 fork ⼀一下 )
PlainTask
Sublime ⼩小⼯工具
安裝⽅方式
• 打開 SublimtText
• ⌘ + shift + p ( install package )
• 選擇 PlainTasks
( 請⼤大家時間裝⼀一下 )
⼀一些技巧
• 「檔名為 TODO」或者是「副檔名為 TODO 」的會
⾃自動變⿈黃筆記本。
• ⌘ + i (新增 TODO)
• ⌘ + d (完成 TODO)
• ⌘ + c (取消 TODO)
( 請⼤大家把剛剛的 TODO 貼到這裡⾯面 )
(分隔線)
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣!
!
- 管理者必須要有⼀一個後台!
- 後台必須要可以新增產品!
- 產品內容必須要有標題、⽂文字、數量、圖⽚片!
!
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣!
!
- 管理者必須要有⼀一個後台 ( /admin/products/)!
- 後台必須要可以新增產品!
- 產品內容必須要有標題、⽂文字、數量、圖⽚片!
!
rails g controller admin::products
http://artstore.dev/admin/products
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣!
!
- 管理者必須要有⼀一個後台!
- 後台必須要可以新增產品!
- 產品內容必須要有標題、⽂文字、數量、圖⽚片!
!
rails g model product title:string description:text quantity:integer
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣!
!
- 管理者必須要有⼀一個後台!
- 後台必須要可以新增產品!
- 產品內容必須要有標題、⽂文字、數量、圖⽚片!
!
http://artstore.dev/admin/products/new
strong_parameters
app/views/admin/products/new.html.erb
( 請動⼿手做把 index 完成)
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者!
- ⾝身為管理者,才可以進⼊入後台!
- ⾝身為管理者,必須要登⼊入且是 admin !
- 管理者⾝身份必須要被分為 admin / user

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者!
- ⾝身為管理者,才可以進⼊入後台!
- ⾝身為管理者,必須要登⼊入且是 admin !
- 管理者⾝身份必須要被分為 admin / user

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
(安裝 devise)
Gemfile
bundle install
rails g devise:install
rails g devise user
rake db:migrate
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者!
- ⾝身為管理者,才可以進⼊入後台!
- ⾝身為管理者,必須要登⼊入且是 admin !
- 管理者⾝身份必須要被分為 admin / user

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
app/controllers/admin/products_controller.rb
Version 3!
!
1. ⾝身為商家的管理者,我要能夠在後台上架我的東⻄西,並設定能夠販賣

2. ⾝身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者!
- ⾝身為管理者,才可以進⼊入後台!
- ⾝身為管理者,必須要登⼊入且是 admin !
- 管理者⾝身份必須要被分為 admin / user

3. 作為⼀一個消費者,我要在前台能夠找到商品並結賬
app/controllers/admin/products_controller.rb
app/controllers/application_controller.rb
app/models/user.rb
rails g migration add_is_admin_to_user
u = User.new(:email=> “xxx@xxx.com”,:password => “12345678”, 

:password_confirmation => “12345678”)
u = User.new(:email=> “xxx@xxx.com”,:password => “12345678”, 

:password_confirmation => “12345678”)
u.save
u.is_admin = true
u.save
rails c
http://artstore.dev/admin/products/new
(不過能登⼊入不能登出怎麼辦)
app/views/layout/application.html.erb
(分隔線)
⺫⽬目前的版⾯面超醜的
(分隔線)
Bootstrap
Gemfile
app/assets/stylesheets/application.css
asset pipeline mount
app/assets/stylesheets/application.css
作業
• 寫後台的 User Story
• 實作圖⽚片上傳 carrierwave
• ⽤用 Bootstrap 做⼀一個「有 Nav bar 」的 layout
• 使⽤用 simple_form 換掉 form
• products/show, products,index 也請實作
提⽰示 #1
• User Story
• ⽤用 Plantask 拆
• 儘量列出你想得到細節
提⽰示 #2
• 上傳圖⽚片
• 安裝 carrierwave
• product has_many:photos
• photos mount ImageUploader
提⽰示 #3
• Bootstrap
• layout 在網路上找
• 要有 Login / Logout 的 bar
提⽰示 #3
• Simpleform
• simpleform with bootstrap form initializer
提⽰示 #4
• Product # show
(分隔線)
交作業
Github pull-request
• fork repo
• git checkout -b store-v1
• git push origin store-v1
• 對 rocodev/artstore 拉 pull-request
• 參考有誰拉了 pull-request
解答(禮拜六給)
(分隔線)