Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 控制器设置局部变量而不是调用setter_Ruby On Rails_Ruby - Fatal编程技术网

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

Ruby on rails 控制器设置局部变量而不是调用setter,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的应用程序中,我有一个名为pagetitle=的方法,它设置页面标题,还有一个助手方法pagetitle,它根据提供的字符串(或不存在的字符串)创建页面标题 pagetitle=在ApplicationController超类中定义,而pagetitle在ApplicationHelper类中定义 我的问题是,每当我调用pagetitle=“Some string”该方法时,rails都倾向于创建局部变量pagetitle,而不是调用该方法 如果我调用self.pagetitle=“Some

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

pagetitle=
ApplicationController
超类中定义,而
pagetitle
ApplicationHelper
类中定义

我的问题是,每当我调用
pagetitle=“Some string”
该方法时,rails都倾向于创建局部变量
pagetitle
,而不是调用该方法

如果我调用
self.pagetitle=“Some string”
,则调用该方法

这是故意的行为吗?我错过了什么


TL;DR:Why
pagetitle=
创建局部变量并
self.pagetitle=
调用我的方法是的,这是预期的行为


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

是的,这是预期的行为


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

出于兴趣,
pagetitle=(“某些字符串”)
的行为如何?@Yule它与
pagetitle=“某些字符串”
相同,如果这就是您要问的Ep,仅此而已。谢谢。@Yule没问题:)出于兴趣,
pagetitle=(“某个字符串”)
的行为如何?@Yule它与
pagetitle=“某个字符串”
相同,如果这就是你要问的Ep,仅此而已。谢谢。@Yule没问题:)