Ruby on rails 如何基于params[:controller]动态访问实例变量?

Ruby on rails 如何基于params[:controller]动态访问实例变量?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我有一个分部,它应该根据params[:controller]变量访问各种控制器的实例变量。使用singularize和downcase,我定义了实例变量的名称,按照约定,它是控制器名称的单数 但是我只得到一个字符串。如何调用名为字符串的实例变量 例如,我有控制器文章,因此我执行以下操作: params[:controller].singularize.downcase # => "article" 现在我想访问@文章。我该怎么做呢?ruby中有一个实例变量\u get()方法。因此,请

我有一个分部,它应该根据
params[:controller]
变量访问各种控制器的实例变量。使用
singularize
downcase
,我定义了实例变量的名称,按照约定,它是控制器名称的单数

但是我只得到一个
字符串。如何调用名为字符串的实例变量

例如,我有控制器
文章
,因此我执行以下操作:

params[:controller].singularize.downcase # => "article"

现在我想访问
@文章
。我该怎么做呢?

ruby中有一个
实例变量\u get()
方法。因此,请尝试以下方法:

var_name = params[:controller].singularize.downcase # article
instance_variable_get("@#{var_name}")
注意:请记住,您应该在适当的上下文中使用
instance\u variable\u get