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