PHP のバックグラウンドが長いため、Ruby と Rails についてはまったくの初心者です。奇妙なエラーが発生し、困惑しました。
クラス変数を次のように設定しています。
class Article < ActiveRecord::Base
@@customTags = []
def self.addCustomGA(slot, name, value, scope=3)
h = {:slot => slot, :name => name, :value => value, :scope => scope}
@@customTags.push h
end
def self.customTagOutput
tags = ""
@@customTags.each do |ct|
tags << "_gaq.push(['_setCustomVar', "+ct[:slot].to_s+", '"+ct[:name].to_s+"', '"+ct[:value].to_s+"', "+ct[:scope].to_s+"]);\n"
end
tags
end
end
コントローラーで次の呼び出しを行う小さなテストを実行しています。
Article.addCustomGA(1, 'categories', @article.category_list);
そして、私の HAML ビューでは、次のようにコンテンツを出力しています。
#{Article.customTagOutput}
これは、最初はうまく機能します。しかし、ページを更新すると、配列にエントリが追加され続けるため、@@customTags
配列はセッション全体で持続しているようです! 数分間更新しないと、自動的にリセットされます。
私が最初に考えたのは、なんらかのキャッシュが発生していることでしたが、Google からは何も得られませんでした。