Nic Lin's Blog

喜歡在地上滾的工程師

before_action 的使用時機

ROR的原則有一項是: 不要重複自己(DRY: Don’t Repeat Yourself) – 撰寫出重複的程式碼是件壞事 那使用before_action的話,就可以收納很多重複的程式碼,不需要一直在每個function裡面都寫同一行程式碼,可以直接在開頭寫上before_action的功能,意義就是在每個funtion執行前先執行這個action。

before_action的意思就是要求 Rails在run controller下的 action 前要先跑指定的method。相對的after_action就是跑完 action 後才要跑的method,至於around_action就是之前之後都要跑(嘖嘖,真貪心)。

以下為before_filter的示範:

class TopicsController < ApplicationController

  before_action :find_board

  def index
      @topics = @board.topics
  end

  def find_board
      @board = Board.find(params[:id])
  end
end
comments powered by Disqus