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