【发布时间】:2012-10-04 19:20:07
【问题描述】:
在网上学习了一个教程后,我有了一个名为 Person 的模型。一段时间后,我们决定将其重命名为 User 更为明智。我浏览了代码库并执行了以下操作:
- 重命名了 Person to User、person to user、People to Users 和 people to users 的所有实例,注意不要破坏任何不相关的内容。
- 适当地重命名所有模型文件。
我有另一个模型叫做 session:
会话属于用户
和
用户有_many 个会话
在运行迁移之前 git grep -i person / people 并找到 | grep person / people 只是返回迁移,所以我确定我已正确重命名所有内容。
当我去创建一个随后创建会话的新用户时,我收到以下错误:
未知属性:user_id
再次运行 git grep 发现 session 中的外键还是 person_id
create_table "sessions", :force => true do |t|
t.integer "person_id
t.string "ip_address"
t.string "path"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
我该如何解决这个问题?
【问题讨论】:
-
当您输入 User 时,您在控制台中看到了什么?
-
你是否在更改后重新创建了你的数据库......删除你的数据库并重新运行迁移
-
@Emrah: User(id: integer, username: string, salt: string, encrypted_password: string, created_at: datetime, updated_at: datetime, email: string, profile_image_path: string, forename: string, surname : string, avatar_file_name: string, avatar_content_type: string, avatar_file_size: integer, avatar_updated_at: datetime, about: string)
-
@JonathanEvans 抱歉,我的意思是会话不是用户。
标签: ruby-on-rails ruby activerecord