gpt4 book ai didi

ruby-on-rails - Rails - 带有 counter_cache 的模型不起作用

转载 作者:行者123 更新时间:2023-12-04 04:59:04 25 4
gpt4 key购买 nike

伙计们怎么了?

我在我的项目中创建了一个迁移,将“likes_count”列添加到 Post:

  def self.up
add_column :posts, :likes_count, :integer, :default => 0
Post.all().each do |post|
post.update_attribute(:likes_count, post.likes.count)
post.save
end
end

def self.down
remove_column :posts, :likes_count
end

好吧,它似乎有效,但是当我尝试将“counter_cache”添加到我的模型时,我遇到了麻烦。看:
has_many :likes, :counter_cache => true, :as => :important

是的,我在没有“:counter_cache => true”的情况下运行迁移,只有在这次迁移之后我才添加了这个命令。奇怪的是,如果我做类似的事情
has_many :likes, :as => :important,  #:counter_cache => true

我的本地主机再次工作。 (我只收到错误消息:“我们很抱歉,但出了点问题。”)。

有人知道这是怎么回事吗?

最佳答案

我发现了问题。
has_many 不能有 ":counter_cache"参数,这个参数只适用于 "belongs_to"。
我转到模型“like”并在“belongs_to”中插入“counter_cache”:

belongs_to :post, :counter_cache => :likes_count
关于“has_many :likes”,我保持原样:
has_many :likes, :as => :important
谢谢各位...

关于ruby-on-rails - Rails - 带有 counter_cache 的模型不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16362997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com