I have a model where a group has several capabilities
class Group < ActiveRecord::Base
attr_accessible :capabilities_attributes
acts_as_audited #<------------------------------- source of error
has_associated_audits
has_many :capabilities, :dependent => :destroy
end
class Capability < ActiveRecord::Base
acts_as_audited :associated_with => :entity_group
end
And a controller where I have
class GroupsController < ApplicationController
load_and_authorize_resource #cancan authorization
#...
def update
if @group.update_attributes(params[:group])
flash[:notice] = "Group '#{@group}' has been updated."
redirect_to groups_path
else
flash[:alert] = "Group '#{@group}' was not updated."
render :action => "edit"
end
end
end
The problem with that plugin (and it does that in other similar situatinos) is that when updating the group capabilities, it tries to insert it twice.
I am not sure why the update of attributes occurs twice. It is fine when I don't use acts_as_audited (or other plugins). But as soon as I add something, I have a duplication error.
I assume there is some early insertion that must occur, but I can't find any reason why it is triggered (and how to prevent it) once too many when, and only when, there are intefering plugins.
Has anyone encountered such an issue ? (or successfully implemented acts_as_audited with nested attributes?)
Many thanks for your help and insights