我最近发现我的两个表之间的关系是错误的,我想进行必要的更改 - 这涉及在我的住宿表上删除一个外键并在我的用户表上添加一个外键。
我使用以下方法创建了一个迁移文件:
rails g migration ForeignKeyAdjustment
然后将其添加到新的迁移文件中:
class ForeignKeyAdjustment < ActiveRecord::Migration
def self.up
remove_column :accommodations, :user_id
add_column :users, :accommodation_id, :integer
end
end
然后我使用以下方式运行迁移:
bundle exec rake db:migrate
然后使用控制台检查每个表中的列名称,并且更改尚未生效!
rails console
和
User.column_names
我错过了什么?
P.S。如果我只是删除我的模型和数据库迁移文件并从终端生成新模型,这会是一个主要问题吗?这不会花费我很长时间,也不需要考虑重要数据。
答案 0 :(得分:0)
您是否建立了Active Record关联?这将允许您将记录从一个表映射到另一个表。否则,列名称只是表中的任意名称。
您是否将外键属性添加到模型中? 这将通过attr accessible
创建现有模型的属性这些可能是一些潜在的问题
协会指南 http://guides.rubyonrails.org/association_basics.html
我还会将问题的标题编辑为“迁移外键”,以便其他人可以找到类似问题的答案。