2011-12-27 102 views
1

我on Rails的内置红宝石马搜索网站 - FindHorsesForSale.net,并希望建立一个活动记录系统,该系统会告诉我: - 多少次的列表中出现搜索结果 - 详细信息页面上出现了多少次列表 - 搜索结果中每个位置的点击率活动记录系统,用于Ruby on Rails的搜索网站

该应用托管在Heroku上。有关如何构建可扩展以回答上述问题的任何建议?

回答

1

我认为最好的方法将是另一个Model计数匹配包括hit_type字段不同之间的搜索和点击配置文件。该模型看起来是这样的:

Hit hit_type:string user_agent:string ip:string horse_id:integer` 

然后你Hit模型的Horse模型通过has_many搜索行动创建的hit一个新的对象为每个发现的马,也为每一个新的热门对象相关联和配置文件的视图。唯一的区别将是hit_type,例如可能是“搜索”和“配置文件”。然后,你可以在Hit模式写入作用域两种:

scope :searched, where("hit_rype = ?", "search") 
scope :viewed, where("hit_type = ?", "view") 

,那么你可以很容易检查马匹的意见:

horse.hits.searched.count # returns count of views 
horse.hits.viewed # returns count of profile views 

希望这可以帮助你!

//我看看你的网站。如果你在网站上做商店,你应该知道SEO,这样你的发现!您的所有域名的问题使用驼峰但谷歌doenst认识到域名的问题,也就是说驼峰,...只是一个提示

+0

更新,................. – davidb 2011-12-27 17:43:23

+0

感谢您的答复。每次显示搜索结果页面时创建20次点击似乎会减慢页面加载速度,这不是我想要做的事情。有关如何使其表现良好的任何建议?也许通过delayed_job或类似的东西调用所有东西? – DougB 2011-12-27 18:58:18

+0

试试看,类似的任务不要减慢我的应用程序eaven每次页面加载时,我都会使用100个对象! – davidb 2011-12-28 08:53:17