2013-02-10 12 views
0

我想要做的是在一個名爲'projects_users'的種子關係表中創建帖子,但是在'rake db:seed '下面引發錯誤:期望/...path.../projects_users.rb來定義Projects_users

Expected /...path.../projects_users.rb to define Projects_users 

projects_users.rb:

class ProjectsUsers < ActiveRecord::Base 
    // no code yet 
end 

(' projects_users'具有控制器和視圖太(也未使用))

projects_users表:

project_id 
user_id 

項目模型:

class Project < ActiveRecord::Base 
    has_and_belongs_to_many :users, :class_name => 'User' 
    belongs_to :user 

    has_many :tickets, :dependent => :destroy 

    attr_accessible :user_id, :title, :description, :start_date, :end_date 
end 

用戶模式:

class User < ActiveRecord::Base 
    attr_accessible :first_name, :last_name, :email, :password 

    has_and_belongs_to_many :projects 
    has_many :tickets 

    before_save :create_remember_token 

    def create_remember_token 
    self.remember_token = SecureRandom.urlsafe_base64 
    end 

end 

seeds.rb:

pu5 = Projects_users.create(:user_id => 12, :project_id => 6) 

錯誤是什麼意思,我該如何解決這個問題?

+1

嘗試'pu5 = ProjectsUsers.create(:user_id => 12,:project_id => 6)'。但無論如何,這不是一個好主意,正如我在其他問題中提到的那樣。對於這種情況,你應該使用'has_many:through'。參考http://guides.rubyonrails.org/association_basics.html#choosing-between-has_many-through-and-has_and_belongs_to_many。這將幫助你瞭解差異。 :) – 2013-02-10 18:05:33

回答

1

您的模型必須是單數。你需要你的模型重新命名projects_users.rbprojects_user.rb 同樣的類定義應該說:

class ProjectsUser < ActiveRecord::Base 
    // no code yet 
end 
在你的種子

所以文件,你應該撥打電話,以這樣的:

pu5 = ProjectsUser.create(:user_id => 12, :project_id => 6) 
+0

非常感謝。按照您的建議,我將名稱更改爲Projects_user,但是現在我得到以下錯誤:「未初始化的常量ProjectsController :: Projects_user」。你知道那是什麼意思嗎? – holyredbeard 2013-02-11 20:27:36

+0

請發佈您的projects_controller文件的內容。任何地方你可能有'Projects_user' - 應該說'ProjectsUser' – Andrei 2013-02-11 20:34:23

+0

我刪除了下劃線,並且做了詭計!非常感謝! – holyredbeard 2013-02-11 21:11:37