在我的应用程序中,我有一个名为 pagetitle=
的方法,它设置页面标题和辅助方法 pagetitle
,它根据提供的字符串创建页面标题(或缺席)。
pagetitle=
在 ApplicationController
父类(super class)中定义,pagetitle
在 ApplicationHelper
类中定义.
我的问题是,每当我调用 pagetitle = "Some string"
时,都不会调用该方法,rails 更愿意创建局部变量 pagetitle
而不是调用该方法。
如果我调用 self.pagetitle = "Some string"
然后调用该方法。
这是预期的行为吗?我在这里缺少什么?
TL;DR:为什么 pagetitle=
创建局部变量并 self.pagetitle=
调用我的方法
最佳答案
是的,这是预期的行为。
您使用 self.
来编写实例变量,否则 Ruby 只会创建局部变量。
关于ruby-on-rails - Controller 设置局部变量而不是调用 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42512420/