1

我正在使用 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 Record 删除 TableA 中的记录将删除 TableB 中所有对应的行。

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

uninitialized constant TableA::TableB

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

这可能吗?

谢谢,巴兰

4

1 回答 1

0

我认为问题在于belongs_to必须与单数表相关。因此,将tableasfor更改tablea如下:

我还建议您查看:delete_all链接以了解和之间的区别:destroy

class TableA < ActiveRecord::Base 
    has_many :tablebs, :dependent => :delete_all
end

class TableB < ActiveRecord::Base 
    belongs_to :tablea
end
于 2012-07-12T10:25:52.867 回答