前提・実現したいこと
seeds.rbに記述した投稿を反映させるため
① rails:db:migrate:reset
、②rails db:seed
を実行したいです。
今出ている下記のエラーは①の段階で出力されたものです。
発生している問題・エラーメッセージ
ArgumentError: wrong number of arguments (given 1, expected 2..3)
該当のソースコード
(seeds.rb) 30.times do |n| name = Faker::Name.first_name email = "sample#{n+1}@sample.com" password = "password" User.create!( name: name, email: email, password: password, password_confirmation: password, confirmed_at: Date.today ) end users = User.all user = users.first following = users[2..20] followers = users[3..10] following.each { |followed| user.follow(followed) } followers.each { |follower| follower.follow(user) }
($ rails db:migrate:status) database: Status Migration ID Migration Name -------------------------------------------------- up 20200229121813 Create users up 20200229123719 Create microposts up 20200419123045 Add password digest to users up 20200419133336 Add devise to users up 20200419134321 Add columns to users up 20200502164930 Remove password digest from users up 20200515021956 Create posts up 20200517060308 Remove provider from users up 20200517060357 Remove uid from users up 20200517060459 Remove user name from users up 20200517081516 Add confirmable to users up 20200517083554 Add status to users up 20200520140801 Add columns to microposts up 20200527063725 Add column to microposts up 20200527143527 Add image column to microposts down 20200601162732 Create likes down 20200605181031 Create bookmarks down 20200607084912 Create relationships
(user.rb) class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable, :confirmable, :omniauthable has_many :microposts, dependent: :destroy has_many :likes, dependent: :destroy has_many :liked_posts, through: :likes, source: :micropost has_many :bookmarks, dependent: :destroy has_many :active_relationships, class_name: "Relationship", foreign_key: "follower_id", dependent: :destroy has_many :passive_relationships, class_name: "Relationship", foreign_key: "followed_id", dependent: :destroy has_many :following, through: :active_relationships, source: :followed has_many :followers, through: :passive_relationships, source: :follower validates :name, presence: true, length: { maximum: 50 } validates :email, presence: true, length: { maximum: 255 } def self.guest find_or_create_by!(name: 'guest', email: 'guest@example.com') do |user| user.password = SecureRandom.urlsafe_base64 user.confirmed_at = Time.zone.now end end def follow(other_user) following << other_user end def unfollow(other_user) active_relationships.find_by(followed_id: other_user.id).destroy end def following?(other_user) following.include?(other_user) end end
試したこと
記述したエラーが出力される前に
Mysql2::Error: Can't DROP 'time'; check that column/key exists
というエラーが出ていました。
この原因となっていたmigrationは、micropostテーブルからtimeカラムを削除するという指示のものだったのですが、同時に直接ファイルからカラムを削除してしまったためDBをリセットするとCan't DROP 'time'
エラーが出るのだと考え該当のmigrationファイルを削除しました。
検索しても情報があまり無かったためご教授いただけると幸いです。
必要な情報がありましたら追加で掲載するのでよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ruby 2.6.3
rails 6.0.2.1
macOS Catalina 10.15.4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 23:05
2020/06/07 23:08
2020/06/08 03:55
2020/06/08 04:50
2020/06/08 11:11
2020/06/08 11:52
2020/06/08 15:08
2020/06/08 22:15