Ruby String to Class Name

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

"general_systems".camelize.singularize = Class.new < ActiveRecord::Base

Однако я продолжаю получать сообщение об ошибке:

undefined method `singularize=' for "GeneralSystems":String

I Я также пытался константировать строку

>> foo = "general_systems".camelize.singularize
=> "GeneralSystem"
>> foo.constantize
NameError: uninitialized constant GeneralSystem
    from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/inflector/methods.rb:124:in `block in constantize'
    from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/inflector/methods.rb:123:in `each'
    from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/inflector/methods.rb:123:in `constantize'
    from /var/lib/gems/1.9.1/gems/activesupport-3.0.5/lib/active_support/core_ext/string/inflections.rb:43:in `constantize'
    from (irb):4
    from /usr/bin/irb:12:in `<main>'
>> foo.constantize = Class.new
NoMethodError: undefined method `constantize=' for "GeneralSystem":String
    from (irb):5
    from /usr/bin/irb:12:in `<main>'

Любая помощь будет принята с благодарностью.

34
задан wscourge 4 September 2018 в 06:23
поделиться