【发布时间】:2012-11-15 20:48:31
【问题描述】:
我们的应用程序使用了多种环境,因此我们可以在不破坏任何东西的情况下试验设置。在一个典型的控制器动作中,我有这样的事情:
def some_action
...
if @foo.development_mode == 'Production'
@settings = SomeHelper::Production.lan(bar)
elsif @foo.development_mode == 'Beta'
@settings = SomeHelper::Beta.lan(nas)
elsif @foo.development_mode == 'Experimental'
@settings = SomeHelper::Experimental.lan(nas)
end
...
end
由于我们有几十个这样的,我想我可以尝试用这样的东西来干掉事情:
@settings = "SomeHelper::#{@foo.development_mode}.lan(bar)"
这显然行不通 - 我只是得到:
"NasHelper::Production.lan(bar)"
我怎样才能减少这种情况,还是我必须坚持我所拥有的??
【问题讨论】:
标签: ruby-on-rails-3 dry