2016-07-27 72 views
1

我试图做一个简单的表单,您可以输入用户,他们的大陆和语言。“字段必须存在”错误简单表格应用程序

用户belongs_to大陆和语言,和 大陆和语言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 /语言和本地主机:3000 /大陆和创建它说新条目“洲/语言”创建成功。

但是,当我继续尝试创建一个新用户时,即使它们已经创建,我也会收到错误:“语言必须存在”和“必须存在”。

错误的原因是什么?如何解决?

回答

1

我认为最好的方法是这样的:

1)撤消您的用户脚手架rails d scaffold User

2)然后,请确保在删除任何参考

3)创建这样的支架:

rails g scaffold User name:string 

4)创建corrsponding迁移(这是真正的最好的方法,以保持一切分开)。

rails g migration AddContinetIdToUsers continent_id:intenger 

5)执行相同的languague:

rails g migration AddLanguageIdToUsers language_id:intenger 

6)进入你的模型,并添加相应的has_manybelogns_to协会。

7)这一切,你不会有任何问题。记住保持完整性和数据处理separete迁移

有时你需要重新启动服务器

+0

您提出的一条线( $轨摹支架用户名:字符串)结果在那里不是字段中输入“语言“和”大陆“。 –

+0

你只是在模型中加入了relathionship。 您需要设置视图中的字段。你使用支架产生的事实并不意味着会产生所有的逻辑。 你需要打电话给你的意见,领域,以设置languague和大陆。 选中此:http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html 我认为这是为什么@ azeez3j问你的意见和控制器的重复。你需要实现所有的逻辑。 此致 –

相关问题