0

简而言之,我的问题是,当我尝试删除相关数据以反对系统尝试更新它们而不是从数据库中删除它们时。

我的数据库架构是

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-ba.akamaihd.net/hphotos-ak-frc3/1011655_10201722818174648_1924981889_n.jpg

4

1 回答 1

0

问题出在协会上。“删除”操作将外键默认设置为空,不删除记录。为其添加依赖选项:

class Station
  has_many :associated_names, :inverse_of => :station, :dependent => :destroy
end

并再次执行代码:

s = Station.first
s.associated_names.delete_all
于 2013-08-21T04:30:55.747 回答