如何在管理面板中保存编辑页面的更改?

how save changes for edit page in adminpanel?

请帮忙解决问题。我安装了 devise 和 activeadmin gems。我将字段 'superadmin' 添加到用户模型。在我通过控制台创建用户实例之后。

schema.rb:

create_table "users", force: :cascade do |t|
  t.string   "email",                  default: "", null: false
  .......
  ...........
  ....
  t.datetime "created_at"
  t.datetime "updated_at"
  t.boolean  "superadmin"
end

我添加到 app/admin/user.rb 之后:

ActiveAdmin.register User do
  permit_params :email, :password, :password_confirmation

  index do
    selectable_column
    .....
    column :created_at
    column :superadmin
    actions
  end

  form do |f|
    f.inputs "Admin Details" do
      f.input :superadmin
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end
end

我尝试通过管理面板填写字段 'superadmin'。但按下按钮 'save' 后,数据库更改未保存。我需要解决这个问题。

请告诉我使用哪个文件。或显示具体的文档页面

ps: 我也生成 user_controller.rb 并尝试遵循:

class UserController < ApplicationController
  private
    def person_params
      params.require(:person).permit(:email, :superadmin, :password, :password_confirmation)
    end
end

您需要将 superadmin 包含在允许的参数列表中:

permit_params :email, :password, :password_confirmation, :superadmin

Rails 不允许您在未经明确许可的情况下从 parameters 更新模型。