2014-09-19 43 views
0

我想动态调用初始化器中定义的变量。 我有一个在我的初始化创建的文件(brands.rb),它具有初始化 等被定义一些变量,如何动态调用在rails中初始化器中定义的变量

FEATURED_FASHION_BRAND=["something", "something"] 
FEATURED_DIY_BRAND=["something", "something"] 

这样我就可以动态调用这个变量,我的意思是,这样的事情,

@name= params[:name] 
FEATURED_"#{@name}"_BRAND 
+0

顺便说一句,一个好得多的办法做到这一点是做一个有h值在您的配置。然后,您可以只说'FEATURED_BRANDS [@name]'或类似的名称,而不是使用动态变量名称。 – 2014-09-19 13:28:46

+0

而且,为了更进一步,您应该将这些东西存储在您的数据库中:感觉就像它会出现在具有“精选”布尔字段的“品牌”表中。 – 2014-09-19 13:30:12

回答

1

您可以使用constantize为:

"FEATURED_#{@name}_BRAND".constantize

+1

请注意,您可以使用'constantize'来处理各种事情,例如将一个字符串转换为一个类:'my_model_name.constantize.find(123)' – 2014-09-19 11:19:49

+0

@MaxWilliams谢谢为我工作 – railsman 2014-09-19 11:28:33