Wie kann ich einen Klassennamen programmgesteuert FooBar
in ein Symbol verwandeln :foo_bar
? zB so etwas, aber das behandelt Kamelkoffer richtig?
FooBar.to_s.downcase.to_sym
ruby-on-rails
ruby
metaprogramming
Josh Glover
quelle
quelle
Schienen 4
.model_name
In Rails 4 wird ein
ActiveModel::Name
Objekt zurückgegeben, das viele nützliche "semantischere" Attribute enthält, wie z.Sie sollten also eine davon verwenden, wenn sie Ihrer gewünschten Bedeutung entspricht, was wahrscheinlich der Fall ist. Vorteile:
Übrigens,
human
hat den Vorteil, I18N-fähig zu sein.quelle
model_name
funktioniert auch zum Beispiel Objekte. Bsp. :foo_bar.model_name
. Wenn Sie die vollständige Liste möchten, schreiben Siefoo_bar.model_name.inspect
in die Rails-Konsole oder in Ihren Debuggerclassify
,modelize
schien nicht zu funktionieren.Erstens: gem install activesupport
quelle
FooBar.to_s.underscore.to_sym
, da ich versuche, eine Klasse (die eine Konstante ist) in ein Symbol umzuwandeln, das ich dann an Factory Girl weitergeben kann . :)Folgendes habe ich gewählt:
quelle
String#demodulize
das Teil vorher zu entfernen::
.