重命名模型并更改对模型的所有引用后,引用仍保留到以前的名称

Jon*_*ans 2 ruby activerecord ruby-on-rails

我在网上学习了一个名为Person的模型.过了一会儿,我们决定将它重命名为User更为明智.我浏览了代码库并执行了以下操作:

  1. 将所有Person的用户,用户对象,用户对用户和用户的所有实例重命名,注意不要破坏任何不相关的内容.
  2. 适当地重命名所有模型文件.

我有另一个名为session的模型:

session belongs_to user

用户has_many会话

在运行迁移之前git grep -i person/people并找到| grep person/people只返回迁移,所以我确信我已经正确地重命名了一切.

当我创建一个随后创建会话的新用户时,我收到以下错误:

未知属性:user_id

再次运行git grep我发现会话中的外键仍然是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    
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

Aay*_*wal 9

只是在迁移中

def change
   rename_column :sessions, :person_id, :user_id
end
Run Code Online (Sandbox Code Playgroud)