我的问题很简单,当我试图删除相关数据来对象系统试图更新它们而不是从数据库中删除它们。
我的数据库架构是
tbl 电台(id,....)
tbl associated_names (id,name,station_id)
我的模块:
class Station
has_many :associated_names, :inverse_of => :station
end
class AssociatedName
has_one :station, inverse_of: :associated_names
# belongs_to :station, inverse_of: :associated_names
end
现在我正在运行代码
s = Station.first
s.associated_names.delete_all ==> error
s.associated_name_ids = [1,3] ==> error
我知道destroy_all解析了delete_all,但我正在寻找更新解决方案
谢谢!
这是有问题的代码的图像:
https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-frc3/1011655_10201722818174648_1924981889_n.jpg
答案 0 :(得分:0)
问题在于协会。 “delete”操作将外键设置为null default,而不是删除记录。添加相关选项:
class Station
has_many :associated_names, :inverse_of => :station, :dependent => :destroy
end
再次执行代码:
s = Station.first
s.associated_names.delete_all