gpt4 book ai didi

ruby-on-rails - 使用 ActiveAdmin 编辑/创建用户 -- ForbiddenAttributesError

转载 作者:行者123 更新时间:2023-12-01 09:17:46 30 4
gpt4 key购买 nike

所以我在这里浏览了 Rails 教程:

http://ruby.railstutorial.org/ruby-on-rails-tutorial-book

并试图让 ActiveAdmin 能够删除用户。通过教程,我的用户模型 has_secure_password并且还有一个 remember_token属性。因此,当我转到我的 ActiveAdmin 用户页面并尝试编辑用户时,要填写的字段是:用户名、电子邮件、密码摘要、记住 token 。

例如,当我修改姓名字段并尝试提交编辑请求时,我收到 ActiveModel::ForbiddenAttributesError .当我尝试创建用户时也会发生这种情况。我认为这显然与我的身份验证/密码设置有关,但我对 Rails 相当陌生,我不确定从哪里开始寻找。有任何想法吗?

编辑:我尝试将其添加到我的 app/admin/user.rb 文件中:

controller do
def resource_params
return [] if request.get?
[ params.require(:active).permit(:name, :email, :password_digest, :remember_token) ]
end
end

我的堆栈跟踪中的这个错误消失了:
Unpermitted parameters: utf8, _method, authenticity_token, commit, id
现在,当我点击 update在 ActiveAdmin 中,我不再收到 ForbiddenAttributesError。相反,页面会重新加载,但未提交更改,我在终端中收到此消息:
 Started PATCH "/admin/users/59" for ...
...
...
(0.1ms) begin transaction
User Exists (0.5ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('example-58@railstutorial.org') AND "users"."id" != 59) LIMIT 1
(0.2ms) rollback transaction

这是我的 users_controller.rb:
def update
@active = Active.find(params[:id])
if @active.update_attributes(active_params)
flash[:success] = "Profile updated"
redirect_to @active
else
render 'edit'
end
end

private

def active_params
return [] if request.get?
[ params.require(:active).permit(:name, :email, :password_digest, :remember_token) ]
end

最佳答案

我不知道 ActiveAdmin,但您的错误提示您不允许您的 id参数

参数

你有这样的参数:

params.permit user: [:name, :email, :password_digest, :remember_token ]

我首先尝试这个:
params.require(:user).permit(:name, :email, :password_digest, :remember_token)

ActiveAdmin

How to get ActiveAdmin to work with Strong Parameters?

根据这个问题,您需要查看 official documentation并且可以试试这个:
   config.before_filter do
params.permit!
end

关于ruby-on-rails - 使用 ActiveAdmin 编辑/创建用户 -- ForbiddenAttributesError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20739434/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com