seeds.rb中的things_add方法?

我现在正在seeds.rb处理一些遗留代码。 以前的开发人员使用这样的方法向表中添加行:

 things_holder.oldthings_add(name) 

哪里:

oldthings.rb

 belongs_to :things_holder 

things_holder.rb

 has_many :oldthings 

我可以操纵他们创建的对象并调整他们创建的模型的种子。 然而,当我尝试对我自己创建的模型(newthings)做同样的事情时,我似乎无法使它工作。

相反,我得到:

undefined方法:newthings_add

这个things_add方法来自哪里? 我没有在任何oldthings.rb文件中看到它

*_add不是标准的Rails / Active Record方法,因此它可以在应用程序的某个地方定义,也可以由其他一些gem提供。

正如@jvillian所评论的那样,你可以使用things_holder.method(:oldthings_add).source_location来了解定义方法的位置。

如果这不起作用,你可以尝试将一个明显无效的值传递给方法(例如things_holder.oldthings_add(true) ),并查看回溯指向的位置。