如何實現 「select_layout」 的方法,這樣我可以改變這個代碼:select_layout Ruby實現元編程
class Cpu::ContextsController < Cpu::ApplicationController
layout :select_layout
private
def has_resource?
true # dummy
end
def select_layout
has_resource? ? 'cpu/context' : 'cpu/account'
end
end
到
class Cpu::ContextsController < Cpu::ApplicationController
select_layout do
has_resource? ? 'cpu/context' : 'cpu/account'
end
end
UPDATE:下面的解決方案是不夠好;)
before_filter do
self.class.send(:layout, has_resource? ? 'cpu/context' : 'cpu/account')
end
是什麼讓你在這裏實現元編程? – rtdp