В разработке я могу удалять учетные записи, но в процессе производства это мне не позволяет. Я даже пытался удалить пользователей из консоли, но я получаю следующие ошибки:
Loading production environment (Rails 5.2.4.1)
irb(main):001:0> User.find_by(email: "XXX@protonmail.com")
D, [2020-02-13T19:00:27.815025 #4] DEBUG -- : (4.6ms) SET NAMES utf8mb4 COLLATE utf8mb4_bin, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
D, [2020-02-13T19:00:27.830307 #4] DEBUG -- : User Load (1.5ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'XXX@protonmail.com' LIMIT 1
=> #<User id: 4706, email: "XXX@protonmail.com", created_at: "2020-01-08 23:46:23", updated_at: "2020-02-13 03:06:56", current_profile: 4030, admin: nil, mod: nil, banned: nil, polonly: nil>
irb(main):002:0> User.find_by(email: "XXX@protonmail.com").delete
D, [2020-02-13T19:00:30.525546 #4] DEBUG -- : User Load (1.7ms) SELECT `users`.* FROM `users` WHERE `users`.`email` = 'XXX@protonmail.com' LIMIT 1
D, [2020-02-13T19:00:30.534763 #4] DEBUG -- : User Destroy (7.6ms) DELETE FROM `users` WHERE `users`.`id` = 4706
ActiveRecord::StatementInvalid: Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails (`website`.`profiles`, CONSTRAINT `fk_rails_e424190865` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)): DELETE FROM `users` WHERE `users`.`id` = 4706
from (irb):2
Пользовательская МОДЕЛЬ
class User < ApplicationRecord
after_create :skip_conf!
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable,
:confirmable, :lockable, :timeoutable, :trackable
has_many :profiles
end
Профиль МОДЕЛЬ
class Profile < ApplicationRecord
validates :username, uniqueness: true, presence: true
belongs_to :user
has_one_attached :avatar
has_many :posts
has_many :votes
has_many :activities
has_many :comments
end