加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – ruby??类声明问题

发布时间:2020-12-17 01:48:37 所属栏目:百科 来源:网络整理
导读:你可以在ruby中: class ApplicationController ActionController::Base before_filter :require_loginend 我只是想知道什么是before_filter?它是ActionController :: Base的一个方法吗? 如果我创建ApplicationController的对象会发生什么? before_filter
你可以在ruby中:

class ApplicationController < ActionController::Base
  before_filter :require_login
end

我只是想知道什么是before_filter?它是ActionController :: Base的一个方法吗?

如果我创建ApplicationController的对象会发生什么? before_filter方法会运行吗?

谢谢!

解决方法

是的,before_filter是ActionController :: Base上的一个方法. before_filter中指定的任何内容都将在被调用的操作之前运行.

API文档:http://api.rubyonrails.org/classes/ActionController/Filters/ClassMethods.html#M000316

编辑:

直接写入类时,在将类加载到解释器中时执行该代码.

将其键入IRB:

>> class Hello
>> p "hello"
>> end
"hello"

所以在你提到的情况下,ruby会看到before_filter方法并尝试找到它.它开始查看它的类,然后它进入父类和父类的父类,依此类推,直到它到达Object.在这种情况下,它将转到ActionController :: Base类并查找before_filter,然后查找链到类,模块和对象.

>> ActionController::Base.class
=> Class
>> ActionController::Base.class.superclass
=> Module
>> ActionController::Base.class.superclass.superclass
=> Object
>> ActionController::Base.class.superclass.superclass.superclass

如果您正在阅读,我强烈推荐MetaProgramming Ruby,它在解释对象模型方面做得比我能做得好得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读