我有一个标准 Rails 2.3.5 应用程序,其模型名为 Post。Post 有一个名为 url 的属性,并定义了以下 getter:
def url
p = 'http://'
u = self[:url]
u.starts_with?(p) ? u : "#{p}#{u}"
end
如果我加载script/console
,我可以做Post.first.url
并得到想要的结果(例如,如果属性的真值为 foo.com ,它会返回http://foo.com )
但是,如果我有一个form_for
块,并执行类似的操作form.text_field :url
,它将不会返回带有 http:// 前缀的 url;相反,它只是返回 foo.com
form_for 如何访问 ActiveRecord 模型上的属性?它似乎绕过了任何重载的吸气剂。