У меня была похожая проблема. если вы попытаетесь перезагрузить схему (в локальной системе, очевидно, не производите ее в рабочей среде), вы должны увидеть разницу в том, что, по вашему мнению, у вас есть, и в том, что на самом деле думает база данных.
rake db:schema:dump
rake db:schema:load
ЭТО СТАНЕТ ВАШИМИ ДАННЫМИ. Но вы должны увидеть разницу в схеме для «пользователей». Это была моя разница:
Свежий отвал показал:
create_table "posts", :id => :false, :force => true do |t|
t.integer "id", :null => false, :limit=> 8
t.integer "object_id", :limit => 8
t.string "post_type"
t.string "from_id"
t.text "picture_url"
t.text "video_source"
t.integer "shares"
t.integer "likes"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "image_size", :limit => 8
t.integer "vid_size", :limit => 8
end
Но я знаю, что id обрабатывается рельсами, и это должно быть:
create_table "posts", :force => true do |t|
t.integer "object_id", :limit => 8
t.string "post_type"
t.string "from_id"
t.text "picture_url"
t.text "video_source"
t.integer "shares"
t.integer "likes"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "image_size", :limit => 8
t.integer "vid_size", :limit => 8
end
Если это также относится к вам, просто добавьте к вашей модели пользователя:
set_primary_key :id
Это сбросило его и теперь оно работает. Я до сих пор не знаю причину проблемы, но это исправило ее для меня.