所以,我写了这段代码:
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的uninitialized constant
变量出现request
错误。
相反,它工作正常并做我想要的。
这是关于Rails源代码('rails magic')的纯粹好奇问题,以便更好地理解。这个变量甚至不像实例变量(@request
)那样调用,但Rails仍然可以获得本地变量。有人可以解释它是如何工作的吗?