Как создать имя переменной из значения строки в Ruby on Rails? - PullRequest
27 голосов
/ 08 марта 2012

Я хочу создать переменную экземпляра в контроллере для использования в представлении:

foo = "bar"
instance_variable_set("#{foo}", "cornholio")

В представлении используйте @bar, чтобы:

@bar => "cornholio"

Это приводит к ошибке: 'bar' is not allowed as an instance variable name

Работа в Rails 3.1

Ответы [ 2 ]

38 голосов
/ 08 марта 2012

Это instance_variable_set("#{foo}", "cornholio") нужно прочитать instance_variable_set("@#{foo}", "cornholio")

На основании этого поста . Просто попробовал это в моем irb для Ruby 1.93; пост с 2009 года.

7 голосов
/ 08 марта 2012

В Ruby имена переменных экземпляров всегда должны начинаться с @ сигил.

...