我现在正在seeds.rb
中处理一些旧代码。以前的开发人员使用这样的方法向表中添加行:
things_holder.oldthings_add(name)
其中:
belongs_to :things_holder
has_many :oldthings
我可以操纵他们创建的对象,并调整他们创建的模型的种子。但是,当我尝试对自己创建的模型(新事物)执行相同操作时,我似乎无法使其正常工作。
相反,我得到了:
未定义的方法:newthings_add
此things_add
方法从何而来?我没有在任何oldthings.rb
文件中看到它
答案 0 :(得分:1)
*_add
不是标准的Rails / Active Record方法,因此它是在应用程序中的某个地方定义的,或者是由其他一些gem提供的。
正如@jvillian所说,您也许可以things_holder.method(:oldthings_add).source_location
来学习该方法的定义位置。
如果这不起作用,则可以尝试将一个明显无效的值传递给该方法(例如things_holder.oldthings_add(true)
),并查看回溯指向何处。