Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么';这个ruby rails语句行得通吗?_Ruby On Rails_Ruby - Fatal编程技术网

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{您按原样尝试了吗?