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)
),并查看回溯指向的位置。