在我的应用程序中,我有一个名为pagetitle=
的方法,它设置页面标题和帮助方法pagetitle
,它根据提供的字符串(或不存在)创建页面标题。
pagetitle=
在ApplicationController
超类上定义,pagetitle
在ApplicationHelper
类中定义。
我的问题是,每当我调用pagetitle = "Some string"
时,方法都不会被调用,rails会更喜欢创建局部变量pagetitle
而不是调用方法。
如果我拨打self.pagetitle = "Some string"
,则会调用该方法。
这是预期的行为吗?我在这里缺少什么?
TL; DR:为什么pagetitle=
创建局部变量而self.pagetitle=
调用我的方法
答案 0 :(得分:4)
是的,这是预期的行为。
使用self.
编写实例变量,否则Ruby只创建局部变量。