Search code examples
ruby-on-railsactiveadminattr-accessible

Get type of user modifying record - Rails


I have in my model:

attr_accessible :name, as: :admin

And in my active admin initializer:

module ActiveAdmin
  class BaseController
    with_role :admin
  end
end

Is it possible to get the role that is editing the record in the model, to do something like this:

validate :thing, if: ->{ modifier == :admin }

?


Solution

  • I used an attr_accessor for now:

    class Service
      attr_accessor :modifier
      attr_accessible ..., :modifier, as: :admin
    

    And I send it from the form:

    ActiveAdmin.register Service do
      form do |f|
        f.input :modifier, as: :hidden, input_html: { value: :admin }
        ...
    

    Then I could use it like this:

    validate :something
    
    def something
      if modifier == 'admin'
         # some code here