2017-10-16 4 views
0

Ich würde gerne eine String-Variable übergeben, die als Name der Eigenschaft verwendet wird.Trailblazer Representable Change Name der Eigenschaft mit Variable

Zum Beispiel, wenn ich die Variable property_name haben, die einen String enthält, möchte ich so etwas wie dies zu tun:

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

und den Namen der Eigenschaft würde abhängig wählen, mit welchem ​​Text, den ich in der Variable.

Ist so etwas möglich? Wenn ja, wie lautet die Syntax dafür?

Danke für jede Hilfe!

Antwort

0

Ich habe den einfachsten Weg gefunden, dies zu erreichen, ist die :if Option.

Zum Beispiel:

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

Die oben würde mir erlauben, in einer Variablen property_name zu passieren. Wenn ich den Wert von Eigenschaftsname auf "Name1" festlege, wird die erste Eigenschaftsanweisung gerendert. Wenn ich property_name auf "name2" setze, wird stattdessen die zweite Property-Anweisung gerendert.