如何根据参数更改部分变量名称?

时间:2015-04-07 12:33:49

标签: ruby-on-rails ruby-on-rails-4

我有一个偏见,看起来像这样

p Your weekly stats
  =@weekly_stats
p Your weekly shares
  =@weekly_shares

我想通过向partial发送不同的名称来更改上面的这些变量:

=render 'stats', period: :weekly
=render 'stats', period: :monthly

所以我的部分看起来像:

  p Your monthly stats
    =@montly_stats
  p Your monthly shares
    =@monthly_shares

我想通过简单的字符串就可以这样做:

p Your #{period.to_s.capitalize} stats

但我怎么能用变量名做呢?

1 个答案:

答案 0 :(得分:1)

您可以使用instance_variable_get。它在此处记录:http://apidock.com/ruby/Object/instance_variable_get

对于你的例子,它应该是这样的:

instance_variable_get("@#{period.to_s.capitalize}_shares")