特定のトピックの 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>
さらに、機能する仮想属性を持つ 2 番目のモデル (マップ) がありますが、それらを変更すると、まだ古い値が取得されます。したがって、コードが次の場合:
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 コンソールをリロードしてみましたが、まだ仮想属性が更新されていないようです。この問題の原因について何か考えはありますか?