rails即戰力第二週上課筆記

  • before_action 是什麼?

    A:屬於application controller filters ,最常用的有before_action,after_action,around_action,會在進入action之前執行

  • 為什麼要用 before_action?

    A:可以把controller裡的action裡有重複的code整理到一個method裡然後放在efore_action裡呼叫,最常用的就是用id找物件

  • 如何使用 before_action?
    A:before_action還可以用:only或:except參數,來決定哪些action要使用或是不使用


    before_action :your_method
    private
    def your_method
    end


    session 與 cookie 的差別

    • 什麼是 session 跟 cookie ?
    • 為什麼要用 session 跟 cookie?
    • Rails 內如何操作 session?

    請參考
    rails Session的大小事
    rails Cookies的大小事

    為何我們要用狀態機去設計訂單狀態?

    • 什麼是狀態機

    A:可以透過aasm狀態機去做物件狀態的切換,再EC網站下就是去管理及切換已下單,已付款,已出貨,出貨中,退貨,取消訂單等狀態

    • 為什麼要使用狀態機去設計訂單狀態?

    A:避免手到操作狀態而使狀態混亂,在設定好的規則下讓狀態機來做狀態的管理及切換

    • 如何在 Rails 內設計狀態機機制?

    A:(http://qiita.com/satton_maroyaka/items/fe838dc21dc95df95c62)

    如何讓 strong_parameter 接受 nested_attributes

    A:

      params.require(:order).permit(info_attributes:[
          :billing_name,
          :billing_address,
          :shipping_name,
          :shipping_address
          ])
    

    board has_many posts, 新造物件宣告方式是: @post = @boards.posts.build 。那如果 book has_one :author,請問要怎麼宣告?

    A:

    @author = @book.build_author
    

    after_create 是一種 model callbacks, 請問 model 有多少種 call backs 請列出來

    A:
    (1) before_validation
    (2) after_validation
    (3) before_save
    (4) before_create
    (5) after_create
    (6) after_save
    (7) after_commit

    (in controller ) render 與 redirect_to 的差異

    A:render是在不改變url的狀態下直接套用某一個view,redirect_to是直接轉址到某個url

    第二週上課範圍用了哪些 gem

    1.aasm

    作業裡面的相關資源連結:

    https://github.com/aasm/aasm

comments powered by Disqus