Ruby on rails 为什么';这个ruby rails语句行得通吗?
我有一个父模型,它有许多子模型 我想根据子记录的一个参数销毁重复的子记录 我试过这个:Ruby on rails 为什么';这个ruby rails语句行得通吗?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个父模型,它有许多子模型 我想根据子记录的一个参数销毁重复的子记录 我试过这个: parent.child.uniq! {|child| child.parameter } 这显然是可行的,但数据库没有反映出变化 您的操作是在从数据库检索的对象上执行的,而不是在实际数据库上执行的。看看这个,找到正确的答案 更改记录后,您是否尝试将其保存到数据库中?Mbrach,您将如何执行此操作?我尝试了parent.save和parent.child.save,但这两种方法都不起作用。我的问题是,如
parent.child.uniq! {|child| child.parameter }
这显然是可行的,但数据库没有反映出变化 您的操作是在从数据库检索的对象上执行的,而不是在实际数据库上执行的。看看这个,找到正确的答案 更改记录后,您是否尝试将其保存到数据库中?Mbrach,您将如何执行此操作?我尝试了parent.save和parent.child.save,但这两种方法都不起作用。我的问题是,如果您正在使用一个数据库,并且在一个应该是唯一的字段中遇到重复项,为什么不在其上设置一个唯一的索引来强制执行该约束?让DBM完成它的工作,并依靠它来完成。Rails就是为这种行为而设计的,它使在中进行设计变得很容易。这不适用于分组。值。每个都抛出一个关联错误。刚刚尝试过,对我来说很好。也许可以尝试该页面上的第二种解决方案,更容易遵循该算法删除模型本身的副本,而不是父模型每个实例的子实例的副本。解决方案:grouped=child.groupu by{,而不是:grouped=all.groupu by{您按原样尝试了吗?