相关疑难解决方法(0)

counter_cache实现的问题

我得到'耙子流产!... posts_count标记为只读'错误.

我有两个模型:用户和帖子.

users has_many posts.

posts belongs_to :user, :counter_cache => true
Run Code Online (Sandbox Code Playgroud)

我有一个迁移,它将posts_count列添加到users表,然后计算并记录每个用户的当前帖子数.

self.up
  add_column :users, :posts_count, :integer, :default => 0

  User.reset_column_information
  User.all.each do |u|
    u.update_attribute( :posts_count, u.posts.count)
  end
end
Run Code Online (Sandbox Code Playgroud)

当我运行迁移时,我收到错误.这当然非常明确,如果我从posts模型中删除:counter_cache声明,例如

belongs_to :user
Run Code Online (Sandbox Code Playgroud)

迁移运行正常.显然,这没有意义,因为你无法以这种方式真正实现它.我错过了什么?

ruby-on-rails counter-cache

43
推荐指数
1
解决办法
6836
查看次数

标签 统计

counter-cache ×1

ruby-on-rails ×1