未定义的方法`每个'在Rails 4中创建新对象时

时间:2015-11-30 14:14:10

标签: ruby-on-rails ruby ruby-on-rails-4

我使用Rails generate命令创建了一个模型:

rails generate model Group users:string                                                                                                                                                                          mo@x1[35%]
  invoke  active_record
  create    db/migrate/20151130131319_create_groups.rb
  create    app/models/group.rb
  invoke    test_unit
  create      test/models/group_test.rb
  create      test/fixtures/groups.yml

现在在rails控制台中,当我尝试创建一个对象时,它会给我一个undefined method错误。

2.0.0-p647 :032 >   Google = Group.create(users: "Google")
NoMethodError: undefined method `each' for "Google":String

任何人都可以对此有所了解吗?

这是.rb的{​​{1}}文件:

Group

2 个答案:

答案 0 :(得分:1)

您的群组模型是否具有名为:用户 has_many 关联?

在我看来,您的数据库列之间存在命名冲突,称为"用户"以及与用户模型的has_many关联,也称为" users"。

如果是这样,你的create()正在尝试使用字符串设置关联的用户记录,当它期待一组用户时。

此处的最佳解决方法是从"用户"重命名您的分组表中的数据库列。对于那些不会发生冲突的事情。

答案 1 :(得分:0)

检查迁移文件。也许代码块出了问题。