我在我的 Rails 应用程序上安装 Kissmetrics,方法是将事件存储在会话变量中,然后将它们传递到后续页面上的 Kissmetrics javascript 代码中。除了尝试跟踪创建的帐户外,此方法效果很好。似乎当我将帐户创建事件存储在我的会话变量中时它工作正常,但是在下一页加载时,会话变量已经消失了。我把调试器放在那里试图找到它被删除的地方,但似乎什么都没有。km_log_event 是一种将字符串存储在名为 km_events 的会话变量中的方法。这是我的代码:
帐户控制器/创建 -->
...
if @account.save
log_event("Account", "Created", @account.name)
km_log_event("Account Created")
redirect_to(welcome_url(:subdomain => @account.subdomain))
@user.activate!
@user.add_connection(params[:connect_to])
else
render(:action => 'new', :layout => 'signup')
end
...
session_controller/欢迎 -->
def welcome
if current_account.new?
# Create the session for the owner, the account is brand new
current_account.user_sessions.create(current_account.owner, true)
elsif current_account.users.last && current_account.users.last.created_at > 1.hour.ago
current_account.user_sessions.create(current_account.users.last, true)
end
redirect_to embedded_invitations_path
end
我只是不确定它在哪里被删除,所以我无法记录这个事件。它似乎发生在帐户控制器中的 @account.save 之后但在欢迎操作之前。
更新:
这是我认为定义 current_account 的帐户模块(这不是我的代码库)。
module Accounts
def self.included(controller)
controller.helper_method :current_account
end
protected
def current_account
return @current_account if defined?(@current_account)
@current_account = Account.find_by_subdomain!(current_subdomain)
end
end