Rails虚拟属性不更新

时间:2012-07-13 21:13:09

标签: ruby-on-rails ruby model attributes virtual

我有一个模型“标签”,链接到特定主题的dbpedia文章。我想创建一个虚拟属性,使用此dbpedia URI生成维基百科URI。这大致是这个类的样子:

class Tag < ActiveRecord::Base

  # Validation
  validates_presence_of :dbpedia_uri, :label

  #Virtual Attribute
  def wikipedia_uri
    "#{dbpedia_uri}".gsub("dbpedia.org/resource", "wikipedia.org/wiki")    
  end

end

当我进入我的控制台并尝试检查Tag.all [1] .wikipedia_uri时,我收到以下错误:

NoMethodError: undefined method `wikipedia_uri' for #<Tag:0xa0c79ac>

此外,我有第二个模型(地图),虚拟属性可以工作,但是当我更改它们时,我仍然得到旧值。所以当代码是:

 def thumbnail_uri
    "#{map_base_uri}/thumbnails/#{identifier}.jpg"
  end

Map.all [1] .thumbnail_uri返回类似的内容:“http://WEBSITE/maps/thumbnails/g3201b.ct002662.jpg”

当我将代码更改为:

def thumbnail_uri
   "test"
end

我仍然得到输出:“http://WEBSITE/maps/thumbnails/g3201b.ct002662.jpg”

我已经尝试重新加载我的Rails控制台,但它似乎仍然没有更新虚拟属性。关于什么可能导致这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

找出问题所在。我在一个目录中愚蠢地运行我的控制台以获得重复的备份文件集,因此备份中的所有方法和变量都可以在控制台中使用,但我对当前代码的更改并没有影响它