ruby on rails - Audited: undefined method `associated' for nil:NilClass -


so have entry model column called created_by default first user created entry. installed audited , in entry model have:

belongs_to :user audited :associated_with => :user 

similarly in user model have following statements:

has_many :entries      has_associated_audits 

in entries form, trying create hidden_field in trying set created_by equal the associated user of first audit on entry. i'm getting error, when try load form view:

undefined method `associated' nil:nilclass 

here code in view:

 .field    = f.label :created_by  %br    = f.hidden_field :created_by, value: @entry.audits.first.associated 

and here code in entries_controller set @entry in view:

  def new     @entry = entry.new     authorize! :create, @entry      @project = project.find(params[:project_id])     @entry.project_id = @project.id     authorize! :update, :read, @project   end 

i realize that, intuitively, doesn't make sense call @entry.audits in event of creating new audit, since has not yet been saved. should set value of @entry.created_by after call @entry.save in create method of controller? not sure practical approach take here.

thanks,

micha'el.

what i'd remove created_by hidden field form (that intercepted), , instead set within controller before entry saved using current_user (or alternative) access user creating entry.

def create_entry   @entry.created_by = current_user   @entry.save end 

i wouldn't consider important assign created_by user after audit has been saved via @entry.audits.first.associated because audits should associated same current_user. if isn't case, have bigger problems on hands.


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -