over 2 years ago

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
← strong parameter session 與 cookie 的差別 →
 
comments powered by Disqus