Подтвердить что ты не робот

Как создать имя переменной из значения строки в Ruby on Rails?

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

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

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

@bar => "cornholio"

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

Работа в Rails 3.1

4b9b3361

Ответ 1

Этот instance_variable_set("#{foo}", "cornholio") должен читать instance_variable_set("@#{foo}", "cornholio")

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

Ответ 2

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