Как я могу обновить principle
:status
до true
при создании нового принципа для конкретной школы, а также обновить предыдущие записи принципов :status
как false
этой школы.
У меня Principle
модель:
class Principle < ApplicationRecord
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable, :confirmable
belongs_to :school
def default_values
self.status = false
end
def active_for_authentication?
super && status?
end
def after_confirmation
Principle.update_all status: false
self.update_attribute(:status, true)
end
end
У меня School
модель:
class School < ApplicationRecord
has_many :principles, dependent: :destroy
end
Schema.rb:
create_table "principles", force: :cascade do |t|
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.integer "school_id"
t.boolean "status", default: false
t.string "encrypted_password", default: "", null: false
t.string "username"
t.string "email"
t.datetime "remember_created_at"
t.datetime "reset_password_sent_at"
t.string "reset_password_token"
t.integer "failed_attempts"
t.string "unlock_token"
t.string "unconfirmed_email"
t.datetime "confirmation_sent_at"
t.datetime "confirmed_at"
t.string "confirmation_token"
t.index ["school_id"], name: "index_principles_on_school_id"
end
В Principle
модель after_confimation
почты, я хочу обновить :status
принципа последнего подтверждения до true
и обновить :status
до false
предыдущих принципов этой школы.