0

私がやろうとしているのは、シードを使用して「projects_users」というリレーショナルテーブルに投稿を作成することですが、「rake db:seed」の後に次のエラーがスローされます。

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)

エラーの意味と、これを修正するにはどうすればよいですか?

4

1 に答える 1

1

モデルは特異でなければなりません。モデルの名前をprojects_users.rbからprojects_user.rbに変更する必要があります。 また、クラス定義には次のように指定する必要があります。

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

したがって、シードファイルでは、次のように呼び出す必要があります。

pu5 = ProjectsUser.create(:user_id => 12, :project_id => 6)
于 2013-02-10T18:48:18.743 に答える