2015-03-25 75 views
0

我想用db/seeds.rb预填充数据库,但在执行过程中出错。rake db:seed,预填充数据库时出错。未初始化的常量Clients_courses

模式已完成加载和设置。但是,当我将与充液耙DB数据库:种子我得到这个错误:

uninitialized constant Clients_courses 

我有我的数据库架构中的表clients_courses。所以我试图预先填好它:

Clients_courses.create(:client_id => 6, :course_id => 2) 

这是怎么回事?

我已经尝试了一些其他表以及例如用户表。但是同样的问题。

回答

1

你应该有相应的模型来操纵这样的数据。对于users表,您通常有User模型。在你的情况,你有ClientsCoursesClientsCourse模型,或者,假设你有:has_and_belongs_to_many协会没有这样的模型。

在这种情况下,做你想要什么的唯一方式是使用现有的(ClientCourse):

Client.find(6).courses << Course.find(2) 
+0

额外quastion。如果我做'Client.create(:id =>' id是数据库中的一个自动增量列,但是我添加到数据库的值需要有一个特殊的id,例如它不会以1开头。它需要建立一个客户端ID 2客户端ID 10 ... 是否可能?...如果我做'Client.create(:id => 10'它自动将其设置为一个 – Felix 2015-03-25 13:35:33

+0

也不工作是这个:':active => 1' colum在数据库中是tinyint,每次我运行rake db:seed时,该值都被设置为'0' – Felix 2015-03-25 13:47:59

+0

@Felix使用主键操作是个不错的主意,更好的方法是创建新的领域,并将其用于您的特殊目的对不起,但我不明白你的最后一个问题,我不能告诉任何事情,除非你显示数据库方案和代码为这两种模型 – 2015-03-25 13:54:45

1
  • 创建模型ClientsCourse
    即应用程序/模型/ clients_course.rb
  • 内下方的文件中添加一行,并保存

    class ClientsCourse < ActiveRecord::Base 
    
    end 
    
  • 纠正线如下

    ClientsCourse.create(:client_id => 6, :course_id => 2) 
    

希望有所帮助

0

型号名称应该client_course.rb和一个名为表client_courses

相关问题