如何在rails after_kind 钩子中调用define_method
how to call define_method in rails after_kind hook
当我在钩子函数中调用 define_method 时:
发生错误:
undefined method `define_method' for #<Myentity:0x007f9e4eda5928>
这里有一个例子:
class EntityInstance < ApplicationRecord
after_find :define_relation
def define_relation
define_method "example" do |x|
end
end
end
如何在hook方法中改变上下文或者如何在hook方法中使用这个函数?
非常感谢!
define_method
应在 class 的上下文中调用。
意思是,取决于你想定义方法的位置(在 Myentity
实例的单例 class 或 Myentity
class 中)你应该使用任一
def define_relation
# define method available only to this particular instance of Myentity
class_eval do
define_method "example" do |x|
end
end
end
或
def define_relation
# define a method available to all instances of Myentity class
self.class_eval do
define_method "example" do |x|
end
end
end
当我在钩子函数中调用 define_method 时: 发生错误:
undefined method `define_method' for #<Myentity:0x007f9e4eda5928>
这里有一个例子:
class EntityInstance < ApplicationRecord
after_find :define_relation
def define_relation
define_method "example" do |x|
end
end
end
如何在hook方法中改变上下文或者如何在hook方法中使用这个函数?
非常感谢!
define_method
应在 class 的上下文中调用。
意思是,取决于你想定义方法的位置(在 Myentity
实例的单例 class 或 Myentity
class 中)你应该使用任一
def define_relation
# define method available only to this particular instance of Myentity
class_eval do
define_method "example" do |x|
end
end
end
或
def define_relation
# define a method available to all instances of Myentity class
self.class_eval do
define_method "example" do |x|
end
end
end