class ActiveRecord::Associations::HasReferencesToAssociation

Public Instance Methods

construct_sql() click to toggle source
# File lib/has_references_to.rb, line 13
def construct_sql
  @finder_sql = "#{@reflection.quoted_table_name}.id IN (#{ids * ', '})"
  @finder_sql << " AND (#{conditions})" if conditions
  @counter_sql = @finder_sql
end
create(attrs = {}) { |record| ... } click to toggle source
# File lib/has_references_to.rb, line 31
def create(attrs = {})
  if attrs.is_a?(Array)
    attrs.collect { |attr| create(attr) }
  else
    create_record(attrs) do |record|
      yield(record) if block_given?
      self.ids = (ids << record.id) if record.save
    end
  end
end
create!(attrs = {}) { |record| ... } click to toggle source
# File lib/has_references_to.rb, line 42
def create!(attrs = {})
  create_record(attrs) do |record|
    yield(record) if block_given?
    record.save!
    self.ids = (ids << record.id)           
  end
end
delete_records(records) click to toggle source
# File lib/has_references_to.rb, line 27
def delete_records(records)
  self.ids = ids - records.map(&:id)
end
ids() click to toggle source
# File lib/has_references_to.rb, line 5
def ids
  (@owner["#{@reflection.name.to_s.singularize}_ids"] ||= []).map(&:to_i)
end
ids=(array = []) click to toggle source
# File lib/has_references_to.rb, line 9
def ids=(array = [])
  @owner["#{@reflection.name.to_s.singularize}_ids"] = array.map(&:to_i)
end
insert_record(record, force = false, validate = true) click to toggle source
# File lib/has_references_to.rb, line 19
def insert_record(record, force = false, validate = true)
  load_target
  set_belongs_to_association_for(record)
  result = !record.new_record? || (force ? record.save! : record.save(:validate => validate))
  self.ids = (ids + [record.id]) if result
  result
end