我有两个模型:由has_and_belongs_to_many相关的教师和部门。
当我尝试从教师保存或update_attributes时,我收到此错误:
NoMethodError: undefined method 'destroyed?' for #<Array:0x007ff2af0204f0>
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord 4.0.2/lib/active_record/autosave_association.rb:380:in 'save_has_one_association'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/autosave_association.rb:188:in 'block in add_autosave_association_callbacks'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active_support/callbacks.rb:383:in '_run__2528643575803035636__update__callbacks'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active_support/callbacks.rb:80:in 'run_callbacks'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/callbacks.rb:310:in `update_record'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/timestamp.rb:70:in `update_record'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/persistence.rb:477:in `create_or_update'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/callbacks.rb:302:in `block in create_or_update'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active_support/callbacks.rb:403:in `_run__2528643575803035636__save__callbacks'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active_support/callbacks.rb:80:in `run_callbacks'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/callbacks.rb:302:in `create_or_update'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/persistence.rb:106:in `save'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/validations.rb:51:in `save'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/attribute_methods/dirty.rb:32:in `save'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:270:in `block (2 levels) in save'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:326:in `block in with_transaction_returning_status'
... 4 levels...
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:281:in `rollback_active_record_state!'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:269:in `save'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/persistence.rb:230:in `block in update'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:326:in `block in with_transaction_returning_status'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `block in transaction'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:210:in `within_new_transaction'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/database_statements.rb:202:in `transaction'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:209:in `transaction'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/transactions.rb:323:in `with_transaction_returning_status'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active_record/persistence.rb:228:in `update'
from (irb):45
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/railties-4.0.2/lib/rails/commands/console.rb:90:in `start'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/railties-4.0.2/lib/rails/commands/console.rb:9:in `start'
from /Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/railties-4.0.2/lib/rails/commands.rb:62:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
此错误阻止我更新我的教师。
我不知道这些信息是否属于enogh,所以如果不知道你需要什么。感谢您的帮助,并期待任何答案。
class Teacher < ActiveRecord::Base
#"validations are here"
has_and_belongs_to_many :department
end
class Department < ActiveRecord::Base
has_and_belongs_to_many :teacher
end