我想传入一个将用作属性名称的字符串变量。
例如,如果我有property_name
一个包含字符串的变量,我想做这样的事情:
property :property_name, type: String, getter: ->(_) { "sample text" }
并且属性名称会根据我在变量中的文本而改变。
这样的事情可能吗?如果是这样,这样做的语法是什么?
谢谢你的帮助!
我想传入一个将用作属性名称的字符串变量。
例如,如果我有property_name
一个包含字符串的变量,我想做这样的事情:
property :property_name, type: String, getter: ->(_) { "sample text" }
并且属性名称会根据我在变量中的文本而改变。
这样的事情可能吗?如果是这样,这样做的语法是什么?
谢谢你的帮助!
我发现完成此操作的最简单方法是使用该: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。如果我将 property_name 的值设置为“name1”,那么将呈现第一个属性语句。如果我将 property_name 设置为“name2”,则将呈现第二个 property 语句。