0

seed.rbファイルを使用して、プロジェクトにデフォルトのユーザーを挿入しようとしています。コンソールで次の行を実行しました。

rake db:seed

エラーはスローされませんでしたが、レコードも作成されませんでした。Railsコンソールにコードを貼り付けても、エラーは表示されません。私は、seed.rbファイルで何か間違ったことをしていると推測しています。

これは私のモデルがどのように関連しているかです:


security_user.rb

has_one :security_users_detail, dependent: :destroy
has_many :security_users_manage_securities
has_many :security_users_roles, through: :security_users_manage_securities

security_users_detail.rb

belongs_to :security_user

security_users_role.rb

has_many :security_users_manage_securities
has_many :security_users, through: :security_users_manage_securities

そして、これは私のseed.rbファイルにあるコードです:

users = {

   Admin: {

      Information: {
        email: 'test@gmail.com',
        password: 'test',
        password_confirmation: 'test'
      },
      Details: {
        address: 'Not defined.',
        city: 'Not defined.',
        country: 'Not defined.',
        egn: '0000000000',
        faculty_number: '',
        first_name: 'Admin',
        gender: 'male',
        gsm: '0000000000',
        last_name: 'Not defined.',
        skype: 'Not defined.'
      },
      Roles: %w(Administrator)
   }
}

users.each do |user, data|

  security_user = SecurityUser.new(data[:Information])

  data[:Roles].each { |role|
    security_user.security_users_manage_securities.build(security_users_role: SecurityUsersRole.find_by_role(role))
  }

  SecurityUser.where(email: security_user.email).first_or_create!(security_user.attributes)

  security_users_detail = SecurityUsersDetail.new(data[:Details])
  security_users_detail.security_user_id = security_user.id
  SecurityUsersDetail.where(security_user_id:  security_users_detail.security_user_id).first_or_create

end
4

2 に答える 2