所以我的投票工作非常好。但是当我尝试通过大多数投票来订购我的帖子时,我得到了这个错误,说邮政索引中的声明无效。
这是我的帖子控制器
def index
@posts = Post.all.order(:cached_votes_up => :desc)
end
我已将缓存投票添加到帖子表迁移中,这也是它的前半部分
class AddCachedVotesToPosts < ActiveRecord::Migration
def self.up
add_column :posts, :cached_votes_total, :integer, :default => 0
add_column :posts, :cached_votes_score, :integer, :default => 0
add_column :posts, :cached_votes_up, :integer, :default => 0
add_column :posts, :cached_votes_down, :integer, :default => 0
add_column :posts, :cached_weighted_score, :integer, :default => 0
add_column :posts, :cached_weighted_total, :integer, :default => 0
add_column :posts, :cached_weighted_average, :float, :default => 0.0
add_index :posts, :cached_votes_total
add_index :posts, :cached_votes_score
add_index :posts, :cached_votes_up
add_index :posts, :cached_votes_down
add_index :posts, :cached_weighted_score
add_index :posts, :cached_weighted_total
add_index :posts, :cached_weighted_average
如果再有代码会帮助我很乐意发布
帖子表
create_table "posts", force: :cascade do |t|
t.string "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.string "image_file_name"
t.string "image_content_type"
t.integer "image_file_size"
t.datetime "image_updated_at"
end
答案 0 :(得分:1)
public int testRecursion(int number) {
列尚未添加到您的数据库中。请运行此命令,
cached_votes_up
它将重置您的数据库迁移,并将添加所有新列。它应该可以解决你的问题。
注意:使用此命令将删除所有数据库记录。