Rails 过滤器2024年12月18日 | 3 分钟阅读 Rails 过滤器是在执行控制器的方法之前或之后运行的方法。 当您希望确保给定的代码块与任何被调用的动作方法一起运行时,它们很有用。 Rails 支持三种类型的过滤器方法
Before 过滤器Rails before 过滤器在执行动作控制器中的代码之前执行。 before 过滤器在调用它们的控制器类的顶部定义。 要设置它,您需要调用 before_filter 方法。 示例 在此示例中,方法 verify_password 用作 before 过滤器。 在调用任何动作方法之前,将调用 verify_password 方法。 After 过滤器Rails after 过滤器在执行动作控制器中的代码之后执行。 就像 before 过滤器一样,after 过滤器也定义在调用它们的控制器类的顶部。 要设置它,您需要调用 after_filter 方法。 示例 在此示例中,方法 resize_photo 被用作 after 过滤器。 Around 过滤器Rails around 过滤器包含在执行控制器代码之前和之后都执行的代码。 它们通常用于需要 before 和 after 过滤器时。 它的实现与其他两个过滤器略有不同,也更复杂。 它通常由一个包含 before 和 after 方法的公共类定义。 示例 在 ActionLogger 类中,before 方法捕获动作开始的时间,after 方法捕获动作完成的时间以及经过的时间。 让我们看看 ActionLogger 类如何用作 around 过滤器。 在您的控制器类中,只需添加 around_filter 方法并传递 ActionLogger 的实例作为参数即可。 保护过滤器方法您控制器类中的任何方法都可以从浏览器路由。 这是通过其保护类中方法的手段完成的。 所有 Ruby 方法都具有这些保护级别之一。
默认情况下,方法始终是公开的。 意味着任何外部类或方法都可以访问它们。 要定义保护级别,您可以通过在要保护的方法前面加上 protected 或 private 关键字来声明方法。 注意:受保护和私有方法不能从浏览器路由。示例 在上面的示例中,有一个受保护的方法和两个私有方法。 在 User 类中,user_identity 方法被设为私有方法。 只有 User 类中的其他方法才能调用它。 sign_in 方法只能由 User 类中或从 User 类继承的类中的方法调用。 下一主题Ruby on rails 测试 |
我们请求您订阅我们的新闻通讯以获取最新更新。