Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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:未定义的方法`delete';,同时删除父数据和子数据_Ruby_Postgresql_Ruby On Rails 3 - Fatal编程技术网

Ruby:未定义的方法`delete';,同时删除父数据和子数据

Ruby:未定义的方法`delete';,同时删除父数据和子数据,ruby,postgresql,ruby-on-rails-3,Ruby,Postgresql,Ruby On Rails 3,我是一个新手程序员,基本上我试图从一个数据库表中删除一条记录,但是这个记录将被用于一个子表,它的组合主键同时从不同的表中删除这两条记录。 这是我需要从中删除子数据的表的类 class Detalle_Mapa include DataMapper::Resource storage_names[:default] = 'detalle_ma' property :clave_mapa, String, :length => 2, :required => true,

我是一个新手程序员,基本上我试图从一个数据库表中删除一条记录,但是这个记录将被用于一个子表,它的组合主键同时从不同的表中删除这两条记录。
这是我需要从中删除子数据的表的类

class Detalle_Mapa 
  include DataMapper::Resource
  storage_names[:default] = 'detalle_ma'

  property :clave_mapa, String, :length => 2, :required => true, :key => true
  property :clave_asig, String, :length => 10, :required => true, :key => true
  property :clave_cuatri, String, :length => 2, :required => true

  belongs_to :mapa_curricular, 'Mapa_Curricular', :child_key => [:clave_mapa], :key => true
  belongs_to :cuatrimestre, 'Cuatrimestre', :child_key => [:clave_cuatri], :key => true
  belongs_to :asignatura, 'Asignatura', :child_key => [:clave_asig]

end
所以现在当我尝试从父表中删除数据时,它不会删除它,因为PK正在子表上用于其他数据。如果这是正常的SQL sintax,那也没什么大不了的,但我很难在Ruby上找到解决方法。

这是删除未用作FK的数据时使用的基本方法

delete '/deleteMapCurricular/:clave_mapa' do
  @mapa = Mapa_Curricular.get(params[:clave_mapa])
  if @mapa      
     @mapa.destroy
     redirect '/catMapCurricular'
  end    
end
这是我试图删除子数据的方法之一,这显然是不对的

     Detalle_Mapa.where(:clave_mapa => [params[:clave_mapa]]).delete_all
有没有一种简单的方法可以从我不知道的数据库中删除一堆数据?或者我对Ruby上的ActiveRecords没有什么了解?


我很抱歉,如果问题模棱两可,或者我没有清楚地解释自己,我通常在论坛上找到所有东西,没有必要问自己。任何帮助都将不胜感激:)

很抱歉没有给出确切的答案。但我可以从这个答案中看出一个概念

class User < ActiveRecord::Base
  has_many :fruits, dependent: :destroy
end

class Fruit < ActiveRecord::Base
  belongs_to :user
end
class用户

因此,在上面的示例中,如果您删除一个用户,该用户的关联果实也将自动删除。

如果我理解清楚,当您希望删除父项时,您希望删除与父项关联的子项?是,我需要一起删除所有内容ActiveRecord是我需要安装的一个新gem,因为我的所有类都没有使用它,它给了我一个错误“Unitized constant ActiveRecord”。如果我删除它抛出的部分“:dependent不映射到…”中的属性或关系,很抱歉您使用rails时遇到麻烦?很抱歉,我的答案不再适用。我的回答是具体的