0

特定のトピックの 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 コンソールをリロードしてみましたが、まだ仮想属性が更新されていないようです。この問題の原因について何か考えはありますか?

4

1 に答える 1

0

問題を理解しました。ファイルの複製バックアップ セットのディレクトリでコンソールを愚かにも実行していたため、バックアップのメソッドと変数はすべてコンソールで使用できましたが、現在のコードへの変更はコンソールに影響を与えていませんでした。

于 2012-07-16T14:21:29.937 に答える