控制器设置局部变量而不是调用setter

时间:2017-02-28 15:14:29

标签: ruby-on-rails ruby

在我的应用程序中,我有一个名为pagetitle=的方法,它设置页面标题和帮助方法pagetitle,它根据提供的字符串(或不存在)创建页面标题。

pagetitle=ApplicationController超类上定义,pagetitleApplicationHelper类中定义。

我的问题是,每当我调用pagetitle = "Some string"时,方法都不会被调用,rails会更喜欢创建局部变量pagetitle而不是调用方法。

如果我拨打self.pagetitle = "Some string",则会调用该方法。

这是预期的行为吗?我在这里缺少什么?

TL; DR:为什么pagetitle=创建局部变量而self.pagetitle=调用我的方法

1 个答案:

答案 0 :(得分:4)

是的,这是预期的行为。

使用self.编写实例变量,否则Ruby只创建局部变量。