种子.rb中的Things_add方法?

时间:2018-08-15 17:06:26

标签: ruby-on-rails ruby

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

things_holder.oldthings_add(name)

其中:

oldthings.rb

belongs_to :things_holder

things_holder.rb

has_many :oldthings

我可以操纵他们创建的对象,并调整他们创建的模型的种子。但是,当我尝试对自己创建的模型(新事物)执行相同操作时,我似乎无法使其正常工作。

相反,我得到了:

  

未定义的方法:newthings_add

things_add方法从何而来?我没有在任何oldthings.rb文件中看到它

1 个答案:

答案 0 :(得分:1)

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

正如@jvillian所说,您也许可以things_holder.method(:oldthings_add).source_location来学习该方法的定义位置。

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