需要验证属性的特定参数

时间:2019-09-18 15:05:00

标签: ruby-on-rails ruby

我需要对role的{​​{1}}参数进行写验证。如果只有accounts_controller role个记录,则该记录无法将属性admin更新为role

此验证必须关闭安全漏洞。但是我不知道它是怎么写的。

accounts_controller.rb

user

account.rb

class AccountsController < ApplicationController
  def index
    @accounts = Account.all
  end
  def update
    @account = Account.find(params[:id])
    redirect_to accounts_path if account.update(role: params[:role])
  end
end

schema.rb

class Account < ApplicationRecord
  enum role: [:user, :admin]
end

我试图写这样的东西:create_table "accounts", force: :cascade do |t| t.integer "role", default: 0 end ,但是没有用。

1 个答案:

答案 0 :(得分:1)

account.rb

validate :the_last_admin

protected

def the_last_admin  
  if Account.admin.count < 2
    errors.add(:role, 'You are the last admin!')
  end
end