为什么我会在我的控制台中看到一些记录,但在我的应用程序中却没有这些记录?

时间:2012-12-13 22:05:40

标签: ruby-on-rails ruby-on-rails-3

在我的应用中,当我去localhost:3000/users/3时,我得到了一个

ActiveRecord::RecordNotFound at /users/3

但是,当我进入我的控制台并u = User.find(3)时,我看到了这一点:

> u = User.find(3)
  User Load (31.6ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", 3]]
 => #<User id: 3, email: "abc3@test.com", encrypted_password: "$2a$10$x9iFcz1kooaQD1P9zFl/jOqwjC9veK6cCEP6zF/mtTMr...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2012-12-13 19:27:34", updated_at: "2012-12-13 19:27:34", name: "Third User"> 

是否有可能从其他数据库中提取它,即使我没有指定任何不同的数据库?

为了它的价值,一切正常,直到我想重置我的数据库并重新运行我的seeds.rb ....所以我最近做了:

rake db:reset这完全符合我的要求,即:

$ rake db:reset
-- create_table("roles", {:force=>true})
   -> 0.0857s
-- add_index("roles", ["name", "resource_type", "resource_id"], {:name=>"index_roles_on_name_and_resource_type_and_resource_id"})
   -> 0.0028s
-- add_index("roles", ["name"], {:name=>"index_roles_on_name"})
   -> 0.0028s
-- create_table("users", {:force=>true})
   -> 0.0899s
-- add_index("users", ["email"], {:name=>"index_users_on_email", :unique=>true})
   -> 0.0045s
-- add_index("users", ["reset_password_token"], {:name=>"index_users_on_reset_password_token", :unique=>true})
   -> 0.0061s
-- create_table("users_roles", {:id=>false, :force=>true})
   -> 0.0663s
-- add_index("users_roles", ["user_id", "role_id"], {:name=>"index_users_roles_on_user_id_and_role_id"})
   -> 0.0088s
-- initialize_schema_migrations_table()
   -> 0.0136s
-- assume_migrated_upto_version(20121210211049, ["/my_app/db/migrate"])
   -> 0.0358s
CREATING ROLES
SETTING UP DEFAULT USER LOGIN
New user created: First User
New user created: Second User
New user created: Third User
New user created: Fourth User

导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

您需要重新启动应用程序。

重置后,旧数据库被删除,并创建了一个新数据库。您的应用需要重新启动以匹配新的数据库,缓存等;)