Reputation: 1288
Is there a way to tell whether I am in create or edit mode from inside the permit_params block of active admin? I'd like to merge created_by and updated_by when I'd creating a new record. When I'm editing an existing record I only want to merge updated_by.
Here's my code:
ActiveAdmin.register Group do
menu parent: "Groups", priority: 0
permit_params do
permitted = [:name, :description, :group_type_id, :owner_user_id]
permitted.merge!(updated_by: current_admin_user)
permitted
end
I'd like to say something like:
permitted.merge!(created_by: current_admin_user) if new_record?
new_record? is an active admin method but it only seems to work in forms.
Any ideas?
Upvotes: 3
Views: 3140
Reputation: 2960
You can merge it in the create and update action, too:
controller do
def create
params[:group].merge!(created_by: current_admin_user)
create!
end
def update
params[:group].merge!(updated_by: current_admin_user)
update!
end
end
Upvotes: 11