Liz's Blog

17道上課筆記#14:Inheritance繼承

| Comments

請講解「繼承」這個觀念

簡單來說,就是爸爸的財產就是兒子都可以用。若是好幾個controller都會用到的程式碼,通常都會放到Application Controller,這樣一來維護容易、畫面乾淨。

本週課程提到的是可以用繼承來整理controller,像是在/admin/orders_controller.rb及/admin/products_controller.rb中皆有以下程式碼:

/admin/orders_controller.rb
layout "admin"

  before_action :authenticate_user!
  before_action :admin_required
/admin/products_controller.rb
layout "admin"

  before_action :authenticate_user!
  before_action :admin_required

因此可以另外新增一個admin_controller.rb

admin_controller.rb
class AdminController < ApplicationController
  layout "admin"

  before_action :authenticate_user!
  before_action :admin_required
end

讓/admin/orders_controller.rb及/admin/products_controller.rb則可以改成:

/admin/orders_controller.rb
class Admin::OrdersController < AdminController
...()
/admin/products_controller.rb
class Admin::ProductsController < AdminController
...()

【17道上課筆記系列】

  1. 17道上課筆記#1:整理撰寫 SEO 原則
  2. 17道上課筆記#2:User Story
  3. 17道上課筆記#3:列出五條 Yahoo Frontend Best Performance 最佳實務
  4. 17道上課筆記#4:Strong Parameter
  5. 17道上課筆記#5:如何讓 strong_parameter 接受 nested_attributes
  6. 17道上課筆記#6:before_action 的使用時機
  7. 17道上課筆記#7:session 與 cookie 的差別
  8. 17道上課筆記#8:為何我們要用狀態機去設計訂單狀態?
  9. 17道上課筆記#9:has_one v.s. has_many
  10. 17道上課筆記#10:render 與 redirect_to 的差異
  11. 17道上課筆記#11:routing 的 namespace
  12. 17道上課筆記#12:Callbacks
  13. 17道上課筆記#13:Service Object
  14. 17道上課筆記#14:Inheritance繼承
  15. 17道上課筆記#15:為什麼 Rails 要分production、test、development三種環境
  16. 17道上課筆記#16:什麼時機要用 helper?什麼時機要用 partial?

Comments

comments powered by Disqus