Filters : before_filter

說明

  • 可以將Action Controller裡面重覆的程式碼獨立出來!
  • 會在Action Controller被執行之前,就會現執行before filter!

使用情境

  • 當超過兩個以上的action都出現相同的程式碼

使用方式

    class PostsController < ApplicationController
      before_filter :find_post, :only => [:show, :edit, :update, :destroy]
      before_filter :find_board, :only => [:index, :create, :edit, :update, :destroy]

    #.
    #.
    #.
    #.

    protected 
    def find_post
      @post = Post.find(params[:id])
    end
    def find_board
      @board = Board.find(params[:board_id])
    end

優點

  • 可以降低撰寫的程式碼的行數
  • 保持程式碼的乾淨

參考資料