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", то вместо этого будет отображаться второй оператор свойства.