小编Ben*_*ney的帖子

如何使用Pundit允许的属性自动删除Active Admin表单输入?

我有一个Rails 4应用程序使用Active Admin 1.0.0.pre1和pundit 0.3.0进行授权,到目前为止一直运行良好,但我很难找到一个好的方法根据用户的角色自动定制表单.

鉴于这些模型:

ActiveAdmin.register AdminUser do
  permit_params do
    Pundit.policy(current_admin_user, resource).permitted_attributes
  end

  form do |f|
    f.inputs "Admin Details" do
      f.input :role, as: :select, collection: [:manager, :admin]
      f.input :email, as: :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end
end

class AdminUserPolicy < ApplicationPolicy
  def permitted_attributes
    attributes = [:email, :password, :password_confirmation]
    attributes += [:role] if user.has_role? :super_admin
    attributes
  end
end
Run Code Online (Sandbox Code Playgroud)

我想将role输入从表单中自动删除.

一种选择可能是:

  permitted_attributes = Pundit.policy(current_admin_user, resource).permitted_attributes

  form do |f|
    f.inputs "Admin Details" do
      f.input :role if permitted_attributes.include? :role …
Run Code Online (Sandbox Code Playgroud)

activeadmin ruby-on-rails-4 pundit

5
推荐指数
1
解决办法
1032
查看次数

标签 统计

activeadmin ×1

pundit ×1

ruby-on-rails-4 ×1