Manipulating microposts

處理完資料模型和相關的 views 之後,現在要把注意力放在透過網站建立 microposts。在這節中,我們會初步實現 status feed,在 Chapter 12 會完善。最後和 users 一樣,我們要實現在網站中刪除 microposts 的功能。

上述功能的實現和之前的方式有點不同。Microposts resource 會透過 Profile 和 Home pages 實現,而不是透過 Microposts controller 的 newedit action,我們只需要 createdestroy action。

路由設定如下:

config/routes.rb

Rails.application.routes.draw do
  root                'static_pages#home'
  get    'help'    => 'static_pages#help'
  get    'about'   => 'static_pages#about'
  get    'contact' => 'static_pages#contact'
  get    'signup'  => 'users#new'
  get    'login'   => 'sessions#new'
  post   'login'   => 'sessions#create'
  delete 'logout'  => 'sessions#destroy'
  resources :users
  resources :account_activations, only: [:edit]
  resources :password_resets,     only: [:new, :create, :edit, :update]
  resources :microposts,          only: [:create, :destroy]
end

產生的 RESTful 路由如下表:

HTTP request URL Action Purpose
POST /microposts create create a new micropost
DELETE /microposts/1 destroy delete micropost with id 1

雖然簡化了路由,但暗示著實現的過程需要更高階的技術,而程式碼的複雜度並不會降低。