ActiveRecord对象上的Dup - 可以访问子对象,但不能通过join访问

时间:2017-11-02 04:18:24

标签: ruby-on-rails activerecord rails-activerecord

我有以下关联:

Teacher hasMany Students hasOne Desk

当像这样重复Student个对象时:

@new_teacher.students = teacher.students.collect{ |student| student.dup }

我可以运行@new_teacher.students[0].desk并获取desk对象。

但是,以下代码返回一个空数组。好像desk对象无法通过join获得。这是保存对象之前的全部内容。我似乎很奇怪我能够在上面访问它,但不是通过join

teacher.students.joins(:desk)

1 个答案:

答案 0 :(得分:1)

这似乎是预期的输出,因为cherry-pick调用并不一定会产生深层次的重复。

deep_cloneable这样的宝石可能适合您的需求。