从终端运行Active Record Class方法

时间:2015-08-12 12:54:56

标签: ruby-on-rails activerecord methods

我在def repay_loans中有方法class Loan < ActiveRecord::Base,如何在rails控制台中运行它。

我尝试过Loan.repay_loans,但是我收到了这个错误:

NoMethodError: undefined method `repay_loans' for Loan (call 'Loan.connection' to establish a connection):Class
from /Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.4/lib/active_record/dynamic_matchers.rb:26:in `method_missing'

谢谢。

2 个答案:

答案 0 :(得分:2)

好像你正在尝试将实例方法作为类方法运行。

如果您想要一个类方法,请将您的定义更改为

def self.repay_loans
  ...
end

否则,您需要使用正确的对象(repay_loans类的实例)调用Loan

答案 1 :(得分:2)

嘿,因为你的代码def repay_loans是对象方法,你试图按类调用它,这样就会给你错误

您可以通过创建对象

来调用它
 l = Loan.new
 l.repay_loans

否则,如果你想在类级别上,那么你可以将你的方法定义为类方法,如:

def self.repay_loans