Search code examples
ruby-on-railsrubyruby-on-rails-4

how append an object to association relation in rails?


In a rails 4.1 application I need to add an object to an "AssociationRelation"

  def index
    employee = Employee.where(id_person: params[:id_person]).take
    receipts_t = employee.receipts.where(:consent => true) #gives 3 results 
    receipts_n = employee.receipts.where(:consent => nil).limit(1) #gives 1 result

    #I would need to add the null consent query result to the true consent results
    #something similar to this and the result is still an association relation
    @receipts = receipts_t + receipts_n

  end

Is there a simple way to do this?


Solution

  • A way of solving this:

      def index
        employee_receipts = Employee.find_by(id_person: params[:id_person]).receipts
        receipts_t = employee_receipts.where(consent: true)
        receipts_n = employee_receipts.where(consent: nil).limit(1)
    
        @receipts = Receipt.where(id: receipts_t.ids + receipts_n.ids)
      end
    

    Unfortunately .or() can't be used here because it's only available from Rails v5.0.0.1