###### tags: `Ruby` 2020/4/6 # 重複的事情放在application.controller ![](https://i.imgur.com/5zEm6dW.png) # 製作編輯按鈕 ![](https://i.imgur.com/H5iyI1j.png) ![](https://i.imgur.com/zI99vh0.png) 使用新增頁面的表單 ![](https://i.imgur.com/no8y4ec.png) 重複的事設定為私有方法 ![](https://i.imgur.com/FXouHE9.png) 依然重複 ![](https://i.imgur.com/A6ez9mL.png) 使用 before_action ![](https://i.imgur.com/M7vOO6e.png) 將@item 改為item ![](https://i.imgur.com/YDZDNTy.png) 在new、edit頁面加上item: @item ![](https://i.imgur.com/JcqDwJV.png) 都能達到一樣的效果 ![](https://i.imgur.com/hknUnSB.png) ActiveRecord 是一種設計模式 一種ORM框架 ActiveRecord是一種物件包裹資料列 has_one :store 造出四個方法 store store = build_store create_store belongs_to :owner 生出兩個方法 owner owner= has_one belongs_to需要同時存在嗎? 沒有has_one則Owner無法去查詢store 沒有belongs_to則store無法查詢owner 要不要加看需求 has_many :products products products= # 建立關聯 ![](https://i.imgur.com/R1gR5z8.png) ![](https://i.imgur.com/l9HhOBK.png) 做選擇列表 ![](https://i.imgur.com/fv559XG.png) 新增category_id以防被擋住 ![](https://i.imgur.com/Y7pulop.png) 先rails g model add_category_to_item 自動造出 model 以及 migration檔 在migration下指令在下rails db:migrate # 檢查登入 ![](https://i.imgur.com/RTz9IAW.png) ![](https://i.imgur.com/4628Rud.png)