ruby-on-rails – 如何在ActiveRecord中删除具有相关记录的多个
发布时间:2020-12-17 04:04:41 所属栏目:百科 来源:网络整理
导读:create table foo (id,name,order,...);create table foo_bar (id,foo_id,value); foo包含order列,其值为(1,2,3,4,5,… 10) 假设foo_bar包含每个foo的多个记录. 如何删除订单值为3..6及其相关记录的foos? 解决方法 class Foo ActiveRecord::Base has_many :
create table foo (id,name,order,...); create table foo_bar (id,foo_id,value); foo包含order列,其值为(1,2,3,4,5,… 10) 如何删除订单值为3..6及其相关记录的foos? 解决方法class Foo < ActiveRecord::Base has_many :foo_bars,:dependent => :destroy end class FooBar < ActiveRecord::Base belongs_to :foo end 如果您的关系如上所述,则以下代码将起作用 Foo.delete_all(["id in (?)",[3,6]]) 要不就 Foo.delete([3,6]) 参考delete EDITED 从小知道我知道你的问题我认为你有类似跟随的东西 foo表 id some_column order 1 some_value 3 2 some_value 4 3 some_value 3 4 some_value 2 5 some_value 1 6 some_value 5 7 some_value 6 foo_bar表 id some_column foo_id 1 some_value 2 2 some_value 1 3 some_value 3 4 some_value 2 5 some_value 4 6 some_value 5 7 some_value 6 然后用户按顺序而不是id Foo.delete_all(["order in (?)",6]]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |