我试图制作一个简单的表单,您可以在其中输入用户,他们的大陆和语言。
用户所属大陆和语言,以及 大陆和语言has_many用户。
我在bash中运行了以下三个命令:
$rails generate scaffold language name:string
$rails generate scaffold continent name:string
$rails g scaffold user name:string language:belongs_to continent:belongs_to
当我去localhost:3000 / languages和localhost:3000 / continents并创建新条目时,它说"大陆/语言"成功创建。
然而,当我继续尝试创建新用户时,我收到错误:"语言必须存在"和#34;大陆必须存在"即使它们已被创建。
错误的原因是什么?如何解决?
答案 0 :(得分:1)
我认为最好的方法是:
1)撤消您的用户脚手架rails d scaffold User
2)然后,请务必删除任何参考
3)像这样创建脚手架:
rails g scaffold User name:string
4)创建相应的迁移(这是保持一切分开的最佳方式)。
rails g migration AddContinetIdToUsers continent_id:intenger
5)为语言做同样的事情:
rails g migration AddLanguageIdToUsers language_id:intenger
6)转到您的模型并添加相应的has_many
和belogns_to
关联。
7)总而言之,你没有遇到任何问题。请记住保持separete迁移的完整性和数据操作
有时您需要重新启动服务器