试图显示有帖子的类别列表。听起来很简单,但我有点卡住了。与此类似
class Category < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :category
end
你能帮忙吗?我尝试了命名范围但破坏了应用程序。
试图显示有帖子的类别列表。听起来很简单,但我有点卡住了。与此类似
class Category < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :category
end
你能帮忙吗?我尝试了命名范围但破坏了应用程序。
您可以使用这样的范围
scope :with_posts, -> { includes(:posts).where("posts.id IS NOT NULL") }
或使用 counter_cache
class Category < ActiveRecord::Base
has_many :posts
scope :with_posts, -> { where("posts_count > ?", 0) }
end
class Post < ActiveRecord::Base
belongs_to :category, counter_cache: true
end
请注意,您必须posts_count
在表中添加一个整数字段才能categories
使其正常工作。首次保存所有类别以填充此字段也是可取的。