活动记录 - 仅当子表中存在所有相关值时才删除它们

时间:2012-07-12 09:59:56

标签: ruby-on-rails activerecord

我在Rails应用程序中工作,我知道模型中的:dependent => delete_all功能。

考虑以下示例

class TableA < ActiveRecord::Base 

    has_many :tablebs, :dependent => :delete_all

end


class TableB < ActiveRecord::Base 

    belongs_to :tablea

end

如果TableB中有相应的外键引用代表TableA, 然后使用Active记录删除TableA中的记录将删除所有相应的 表B中的行。

但是当TableB中没有相应的值时,它显示为

uninitialized constant TableA::TableB

我想要实现的是,Active Record应该删除依赖值,如果它存在和 如果没有依赖值,则忽略该步骤。

这可能吗?

感谢, 巴兰

1 个答案:

答案 0 :(得分:0)

我认为问题在于belongs_to必须与单数形式的表相关。因此,请更改tableas的{​​{1}},如下所示:

我还建议您查看this链接,查看tablea:delete_all之间的区别。

:destroy