当已经存在没有嵌套数据的计数器时,使用与计数器缓存的关联

时间:2012-09-29 02:08:15

标签: ruby-on-rails activerecord

我将遗留站点中的数据库模式及其内容导入到Rails项目中。

我有DVD和投票。投票只是Dvd模型中的整数字段,如Dvd.votes:integer=10

由于我还可以在Rails中轻松地将新投票与用户相关联,因此我创建了一个属于VoteDvd模型的新User模型。

我的情况是,现在调用Dvd.first.votes时我得到一个空数组[],因为投票模型上还没有数据,但votes_count仍然有导入的计数。

(我在添加Dvd.votes模型后将Dvd.votes_count字段重命名为Vote,并在投票模型上添加了belongs_to :dvd, :counter_cache => true。)

我不确定这个问题的理想解决方案是什么。我应该通过简单查询Dvd.votes_count来调用投票,还是有更好的方法来进行投票?

1 个答案:

答案 0 :(得分:1)

很抱歉,这可能不是您问题的答案,但我建议不要创建您自己的解决方案,而是使用gem:https://github.com/bouchard/thumbs_up 已经优化了。在您的情况下,它可以节省大量时间。 因此,您需要安装gem,然后将现有投票导入其中。