我想知道更新模型的正确方法是什么
例如,假设我想将数据成员的名称从likes
更改为numOfLikes
。
此变量出现在模型本身中,但也出现在schema.rb
和db\migrate\XXX.rb
我手动更改了这些文件并收到了此错误:
#Topic:0x3442d88
的未定义方法`numOfLikes'
那么,正确的做法是什么? (我也要求删除数据成员或添加数据成员)
答案 0 :(得分:2)
最好的方法是运行迁移来重命名列,这将更新schema.rb文件。
您不应该直接编辑schema.rb,并且迁移文件只在数据库上运行命令,如果在运行后更改则不会影响模型。
Schema.rb表示数据库模式的状态,它不通过单独更改文件的内容来控制或更改它。
包含以下内容的新迁移:
rename_column :table_name, :likes, :numOfLikes
这将重命名数据库中的列,并将数据库模式转储到schema.rb中,并使用新的属性名称。