如何为Active Admin表单设置当前登录用户的admin_user_id值并隐藏该字段
处理Active Admin表单隐藏admin_user_id字段并赋值当前用户
推荐方案(后端赋值,安全可靠)
直接在表单中移除admin_user_id输入项,通过后端控制器回调为字段赋值,彻底避免前端篡改风险:
- 修改表单代码:
form do |f| f.inputs do f.input :title f.input :description end f.actions end
- 在对应的Active Admin资源文件中添加控制器回调:
controller do before_action :assign_current_admin_user, only: [:create, :update] private def assign_current_admin_user resource.admin_user_id = current_admin_user.id end end
前端隐藏方案(不推荐,存在篡改风险)
如果一定要通过前端隐藏字段,可添加hidden: true属性,但需注意用户可通过浏览器开发者工具修改字段值:
form do |f| f.inputs do f.input :admin_user_id, input_html: { value: current_admin_user.id, hidden: true } f.input :title f.input :description end f.actions end
内容的提问来源于stack exchange,提问作者Fuaad
相关产品推荐
相关产品推荐

