在Rails(4.1)应用程序中,我在几个类中调用create_bound方法(该方法包含在ExtModule中)。
该方法需要2个参数:task_name和user_id
有没有办法知道调用该方法的参数?
例如,具有以下代码
Class Event < ActiveRecord::Base
include ExtModule
...
create_bound("Buy Milk", 1)
...
end
更新1
我有一个名为BoundRetriever的第二个类
Class BoundRetriever
def self.get_bound(klass)
#Ruby magic happens here
end
end
和BoundRetriever.get_bound(Event)
应该返回[“购买牛奶”,1]
如何定义get_bound
?
谢谢你,祝你有个愉快的一天。
答案 0 :(得分:0)
我认为那里不需要BoundRetriever
课程。
在 ext_module.rb :
中module ExtModule
BOUND = []
def create_bound(task_name, some_id)
BOUND.replace [task_name, some_id]
# rest of the code goes here..
end
def get_bound
BOUND
end
end
在您的模型中,例如 event.rb ,您可以致电:
Class Event < ActiveRecord::Base
include ExtModule
...
create_bound("Buy Milk", 1)
...
# call get_bound with the same object
get_bound #=> ["Buy Milk", 1]
...
end