当我们需要在控制器的某个操作之前运行某些操作时,我们可以使用before_filter动作。以下是编写确定before_filter的规范的一个示例:
在控制器中添加before_filter:
class UsersController < ApplicationController
before_filter :authenticate_user
def index
@users = User.all
end
private
def authenticate_user
unless current_user
flash[:alert] = "You must be logged in to access that page."
redirect_to new_user_session_path
end
end
end
在上面的示例中,我们向UsersController添加了一个before_filter,该操作使用authenticate_user方法来检查用户是否已经登录。如果用户未登录,处理程序将重定向到登录页面,并显示“您必须登录才能访问该页面”的警告。
可以根据需要使用多个before_filter操作来确保控制器的操作在正确的环境中运行。