【问题标题】:How to destroy all association data between two models? (Rails beginner)如何销毁两个模型之间的所有关联数据? (铁路初学者)
【发布时间】:2011-11-07 13:22:51
【问题描述】:

我有两个模型:storecategory,带有一个名为 categories.stores 的连接表。

如何删除连接表中商店对象的所有关系数据?

我可以使用其中之一吗:

store.categories.destroycategory.stores.destroy

注意:两个模型都是has_and_belongs_to_many(因此对于每个关联记录没有标识符 -- 只有 store_id 和 category_id)

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1


    【解决方案1】:

    has_and_belongs_to_many 关联中,您可以使用delete_alldestroy_all

    has_many 关联中,您应该考虑使用delete_all,因为它会按照:dependent 策略删除记录(默认情况下它会使外键无效)而不是destroy_all,后者会破坏关联记录。

    更多详情http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Delete+or+destroy%3F

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多