Ruby on rails 为什么我的默认属性访问器没有被覆盖?

Ruby on rails 为什么我的默认属性访问器没有被覆盖?,ruby-on-rails,attributes,getter,overwrite,accessor,Ruby On Rails,Attributes,Getter,Overwrite,Accessor,我有一个文章模型。数据库架构有多个列,包括“title”。我正试图提供我自己的getter来代替方法\提供的getter。目前,我只是在尝试: class Article < ActiveRecord::Base def title "blah" end end 类文章@jerhinesmith,我刚刚停止并重新启动了服务器——同样的行为。我即将开始新的方法名路线(我很感激fight的建议),但我仍然对这个问题感到好奇。我尝试先定义title\u,然后再定义type\u和

我有一个文章模型。数据库架构有多个列,包括“title”。我正试图提供我自己的getter来代替方法\提供的getter。目前,我只是在尝试:

class Article < ActiveRecord::Base
  def title
    "blah"
  end
end
类文章

但是,当我重新加载视图时,标题字段仍然来自数据库。(我的服务器环境是开发环境,我正在使用Rails 3.1.0。)有什么想法吗?

如果存在“before\u type\u cast”变体,则输入帮助程序不使用普通访问器,因此在您的情况下,它正在访问
title\u before\u type\u cast


也可以定义它,或者选择另一个方法名。我建议使用后者,因为覆盖访问器是令人困惑的,即使没有这种复杂性。不要对抗ActiveRecord,你不会赢。

你能在视图中使用属性的那一行吗?看起来它应该可以工作。可能是个愚蠢的问题,但是你已经停止并重新启动了本地开发服务器吗?@Emily,我同意它看起来应该可以工作!=-)该视图看起来像:
2%>@jerhinesmith,我刚刚停止并重新启动了服务器——同样的行为。我即将开始新的方法名路线(我很感激fight的建议),但我仍然对这个问题感到好奇。我尝试先定义
title\u,然后再定义
type\u和
title
,但在这两种情况下都没有向助手提供“blah”。为什么你认为那不起作用?谢谢。这也让我困惑。如果我正确解释了源代码,它应该会起作用: