Ruby on rails Rails如何理解请求是什么?
所以,我写了这段代码:Ruby on rails Rails如何理解请求是什么?,ruby-on-rails,Ruby On Rails,所以,我写了这段代码: module UniversityFinder def define_shortcut_part r=request subs=request.subdomains if subs.length>1 subs[1] else subs[0] end end def university university=University.find_by_shortcut(define_short
module UniversityFinder
def define_shortcut_part
r=request
subs=request.subdomains
if subs.length>1
subs[1]
else
subs[0]
end
end
def university
university=University.find_by_shortcut(define_shortcut_part)
end
end
它适合我的个人需要,在单独的文件中,并包含在我的一个控制器中的模块中
问题是,对于这个请求
变量,我预期Rails会出现未初始化常量
错误
相反,它工作得很好,做了我想做的事情
为了更好地理解,这纯粹是关于Rails源代码(“Rails魔术”)的好奇问题。这个变量甚至不被称为like实例变量(
@request
),但Rails仍然得到这个局部变量。有人能解释一下它是如何工作的吗?我相信这与rails无关,这只是ruby模块的工作方式,当你将它们包含在一个类中时,它们的实例方法就变成了该类的其他实例方法(因此,就好像您在控制器内定义了方法,并在控制器对象上简单地调用了request
方法)