如何保存adminpanel中编辑页面的更改?

时间:2015-09-19 07:42:14

标签: ruby-on-rails ruby-on-rails-4 activeadmin

请帮助解决问题。我安装了devise和activeadmin宝石。我向用户模型添加字段'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'。但按下“保存”按钮后,数据库更改未保存。我需要解决这个问题。

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

PS: 我也生成user_controller.rb并尝试按照:

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

1 个答案:

答案 0 :(得分:1)

您需要将permit_params :email, :password, :password_confirmation, :superadmin 包含在允许的参数列表中:

$revs = array();

while(mysqli_stmt_fetch($statement)){
   array_push( $revs,array("item_name"=>$item_name,"username"=>$username,"review"=>$review));   

}

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