I have two classes:
class Relationship < ActiveRecord::Base
belongs_to :source,
:class_name => "User",
:foreign_key => "source_id"
belongs_to :target,
:class_name => "User",
:foreign_key => "target_id"
end
class Friendship < Relationship
belongs_to :user,
:class_name => "User",
:foreign_key => "source_id"
belongs_to :friend,
:class_name => "User",
:foreign_key => "target_id"
end
I want to ensure that only one combination of type, source_id, target_id exists which I try to achieve through
validates_uniqueness_of :target_id, :scope => [:type, :source_id]
and that produces the following messages
can't dump anonymous class Class
RAILS_ROOT: ./script/../config/..
Application Trace | Framework Trace | Full Trace
C:/PROGRAMME/RUBY-1.82/lib/ruby/1.8/yaml/rubytypes.rb:9:in `to_yaml'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/connection_adapters/abstract/quoting.rb:22:in `quote'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/connection_adapters/postgresql_adapter.rb:117:in `quote'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1305:in `quote_bound_value'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1287:in `replace_bind_variables'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1287:in `gsub'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1287:in `replace_bind_variables'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1276:in `sanitize_sql'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1062:in `add_conditions!'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:1012:in `construct_finder_sql'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:924:in `find_every'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:918:in `find_initial'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb:380:in `find'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:528:in `validates_uniqueness_of'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:514:in `validates_each'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:299:in `each'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:299:in `validates_each'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:296:in `call'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:794:in `run_validations'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:788:in `each'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:788:in `run_validations'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:752:in `valid_without_callbacks'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/callbacks.rb:306:in `valid?'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/validations.rb:723:in `save_without_transactions'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/transactions.rb:126:in `save'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/transactions.rb:126:in `transaction'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/transactions.rb:91:in `transaction'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/transactions.rb:118:in `transaction'
C:/PROGRAMME/RUBY-1.82/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/transactions.rb:126:in `save'
#{RAILS_ROOT}/app/controllers/account_controller.rb:74:in `add_friend'
-e:3:in `load'
-e:3