1
我嘗試建立一些動態定義的方法和鏈條一些範圍的方法是這樣的:
爲define_method "#{instance_name_method}" do
Kernel.const_get(model_name).___some_chaining methods basd on condition
end
一個想法是這樣的:
method_action = model_name #ex Post
['latest', 'old', 'deleted','latest_deleted','archived'].each do |prefix|
method_action << ".deleted" if prefix.match('deleted')
method_action << ".latest" if prefix.match('latest')
method_action << ".old" if prefix.match('old')
define_method "#{prefix}_#{instance_name_method}" do
eval(method_action)
end
end
在後我們defiend示波器最新,舊...
現在我們可以調用像這樣的方法:
Post.latest or Post.old_archived etc...
我的問題是:
是否有這樣做的更好的辦法? (類似於活動記錄查找,但沒有method_missing)這是好得難看的...
如何動態鏈接方法?
我已經知道發送(「方法」,VAR),但我不知道如何加入基於狀態的字符串這些方法...
感謝