2015-03-13 104 views
0

在模型中未定義的方法'某某 '類'國':NameError:在軌道4,5

class State < ActiveRecord::Base 

    belongs_to :country 

    alias_method :abc, :xyz 

    def self.xyz 

    end 
end 

在日誌:

1.9.3-p551 :005 > State.abc 
NameError: undefined method 'xyz' for class 'State' 

我在軌是新來alias_method。請幫助我。

回答

0

這與Rails無關,alias_method是嘗試使用Rails之前的紅寶石本身的一部分,which you really should learn

這裏的問題在於你已經將xyz定義爲類/單例方法,但調用alias_method就像你已經完成了對實例方法的工作。

0

爲了使您的代碼正常工作,您必須爲類方法定義alias_method,因爲您擁有的是實例方法的alias_method的定義。

class State < ActiveRecord::Base 

    belongs_to :country 

    class << self 
    alias_method :abc, :xyz 

    def xyz 
     'Hello' 
    end 
    end 
end 

State.abc 
Hello 
=> nil 
+0

我收到同樣的錯誤'1.9.3-P551:001> State.abc NameError:未定義的方法'XYZ」類'類 '使用您的代碼後, – 2015-03-13 07:09:04