Ruby on rails 元编程ActiveRecordRails
我的项目的lib目录中有以下代码Ruby on rails 元编程ActiveRecordRails,ruby-on-rails,ruby,metaprogramming,Ruby On Rails,Ruby,Metaprogramming,我的项目的lib目录中有以下代码 module Pasta module ClassMethods def self.has_coordinates self.send :include, InstanceMethods end end module InstanceMethods def coordinates [longitude ||= 43.0, latitude ||= 25.0] end end
module Pasta
module ClassMethods
def self.has_coordinates
self.send :include, InstanceMethods
end
end
module InstanceMethods
def coordinates
[longitude ||= 43.0, latitude ||= 25.0]
end
end
ActiveRecord::Base.extend ClassMethods
end
它应该为ActiveRecord::Base创建一个类方法,它有_坐标,我可以“分配”给模型。。。但我收到错误未定义的局部变量或方法“has_坐标”
提前谢谢 在ClassMethods中删除
self.
应该可以做到这一点
module Pasta
module ClassMethods
def has_coordinates
self.send :include, InstanceMethods
end
end
module InstanceMethods
def coordinates
[longitude ||= 43.0, latitude ||= 25.0]
end
end
ActiveRecord::Base.extend ClassMethods
end
试试这个:
module Pasta
def has_coordinates
send :include, InstanceMethods
end
module InstanceMethods
def coordinates
[longitude ||= 43.0, latitude ||= 25.0]
end
end
end
ActiveRecord::Base.extend Pasta
在某个地方要求“意大利面食”
。同样的事情…PS。我正在使用Rails 2.3.50。我已经解决了问题…谢谢!