Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 HABTM-保存时出错:未找到方法';销毁?';用于阵列_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 HABTM-保存时出错:未找到方法';销毁?';用于阵列

Ruby on rails 4 HABTM-保存时出错:未找到方法';销毁?';用于阵列,ruby-on-rails-4,Ruby On Rails 4,我有两种模式:教师和系由has_和属于多个 当我试图从教师处保存或更新_属性时,出现以下错误: 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 'sa

我有两种模式:教师和系由has_和属于多个

当我试图从教师处保存或更新_属性时,出现以下错误:

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>'
NoMethodError:的未定义方法“已销毁”#
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord 4.0.2/lib/active\u record/autosave\u association.rb:380:in“save\u有一个\u association”
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/autosave\u association.rb:188:in'block in add\u autosave\u association\u callbacks'
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active\u support/callbacks.rb:383:in'\u run\u 252864357575035636\u update\u callbacks'
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active\u support/callbacks.rb:80:in'run\u callbacks'
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/callbacks.rb:310:in'update\u record'
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/timestamp.rb:70:in'update\u record'
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/persistence.rb:477:“创建或更新”
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/callbacks.rb:302:in`block in create\u或\u update'
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active\u-support/callbacks.rb:403:in `“运行”中的252864357575035636\u保存\u回调”
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activesupport-4.0.2/lib/active\u support/callbacks.rb:80:in'run\u callbacks'
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/callbacks.rb:302:在“创建或更新”中
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/persistence.rb:106:在“保存”中
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/validations.rb:51:在“保存”中
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/attribute\u methods/dirty.rb:32:在“保存”中
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/transactions.rb:270:在“保存中的块(两级)”中
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/transactions.rb:326:in `阻止进入并返回\u事务状态'
... 4级。。。
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/transactions.rb:281:处于“回滚”活动记录状态
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/transactions.rb:269:in'save'
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/persistence.rb:230:在“更新中的块”中
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/transactions.rb:326:in `阻止进入并返回\u事务状态'
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/connection\u adapters/abstract/database\u statements.rb:202:“事务中的块”
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/connection\u adapters/abstract/database\u statements.rb:210:in`within\u new\u transaction'
来自/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/connection\u adapters/abstract/database\u statements.rb:202:在“事务”中
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\u record/transactions.rb:323:in`with\u transaction\u returning\u status'
from/Users/marcelomita/.rvm/gems/ruby-2.1.3/gems/activerecord-4.0.2/lib/active\u record/persistence.rb:228:在“更新”中
起始(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`'
从箱子/轨道:4:in“require”
从箱子/轨道:4:in`'
这个错误阻止我更新我的老师

我不知道这个信息是否足够,所以如果你不知道,问我你需要什么。感谢您的帮助,并期待任何答复

编辑
班主任
请发布您的模型代码和试图销毁的控制器代码。我不想销毁任何东西。驱逐舰?如果对象已销毁,但不适用于数组,则方法返回true。我试图弄清楚为什么在我尝试更新对象时会调用它。我正在用我的模型编辑我的ask。在activerecord 4.0.2中,
lib/active\u record/autosave\u association.rb
的第188行位于
elsif reflection.macro==:has\u one
--any
:has\u one
在任一模型中?请添加您的控制器更新。确实有一个。在部门模型中,我属于:经理,班级名称:“教师”,在教师模型中,我有:部门,外键:“经理id”。我没有任何控制器,我在rails控制台或教师模型的ActiveAdmin页面上遇到了这个问题。对不起,我没有及时回复,我正忙于另一个项目。
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