我需要对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
,但是没有用。
答案 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