Trailblazer Представляемое Изменение имени свойства с переменной

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

Например, если у меня есть переменная property_name, который содержит строку, я хочу сделать что-то вроде этого:

property :property_name, type: String, getter: ->(_) { "sample text" }

и имя свойства будет меняться в зависимости от того, какой текст у меня внутри переменной.

Возможно ли что-то подобное? Если да, то каков синтаксис для этого?

Спасибо за любую помощь!

1 ответ

Решение

Я нашел самый простой способ сделать это с помощью :if вариант.

Например:

property :name1, type: String, if: ->(_) { property_name == 'name1' }, getter: (_) { "sample text" }
property :name2, type: String, if: ->(_) { property_name == 'name2' }, getter: (_) { "sample text" }

Вышеприведенное позволит мне передать переменную имя-свойства. Если я установлю значение property_name в "name1", то будет выполнено первое утверждение свойства. Если я установлю property_name в "name2", то вместо этого будет отображаться второй оператор свойства.

Другие вопросы по тегам