NameError:在轨道4,5
问题描述:
在模型中未定义的方法'某某 '类'国':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
。请帮助我。
答
这与Rails无关,alias_method
是尝试使用Rails之前的红宝石本身的一部分,which you really should learn。
这里的问题在于你已经将xyz
定义为类/单例方法,但调用alias_method
就像你已经完成了对实例方法的工作。
答
为了使您的代码正常工作,您必须为类方法定义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
我收到同样的错误'1.9.3-P551:001> State.abc NameError:未定义的方法'XYZ”类'类 '使用您的代码后, – 2015-03-13 07:09:04