ruby-on-rails - Controller 设置局部变量而不是调用 setter

标签 ruby-on-rails ruby

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

pagetitle=ApplicationController 父类(super class)中定义,pagetitleApplicationHelper 类中定义.

我的问题是,每当我调用 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/

相关文章:

ruby - 如何在 MongoDB 映射函数中对 BSON 对象进行字符串化?

php - 让搜索引擎链接到子页面而不是索引

ruby - Sinatra 中的 OPTIONS、LINK 和 UNLINK 路由是什么?

jquery - 将 Rails 变量插入 jquery

ruby-on-rails - Rails wiki gem for production with devise/cancan - 非个人使用

ruby-on-rails - 在 Jenkins 中使用 rspec 的 Capybara - 如何输出到控制台

ruby-on-rails - 使用 acts-as-taggable-on 查找相关标签

ruby - 单例方法有什么用?

javascript - haml 模板中的 JS 语句

ruby-on-rails - Rails 默认错误页面在开发时不显示