bullet_train-core
bullet_train-core copied to clipboard
Inability to use super scaffolding with self-referential models.
Hello. Stumbled on a potential bug with super scaffolding when creating a model that is self-referential (refers to itself).
If I do:
rails generate super_scaffold Scrape Team scrape:super_select
I get:
/.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/activesupport-7.1.3.2/lib/active_support/inflector/methods.rb:290:in `constantize': uninitialized constant Scrape (NameError)
Object.const_get(camel_cased_word)
^^^^^^^^^^
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/activesupport-7.1.3.2/lib/active_support/core_ext/string/inflections.rb:74:in `constantize'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/scaffolding/script.rb:146:in `block in check_required_options_for_attributes'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/scaffolding/script.rb:91:in `each'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/scaffolding/script.rb:91:in `check_required_options_for_attributes'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/bullet_train/super_scaffolding/scaffolders/crud_scaffolder.rb:62:in `run'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/scaffolding/script.rb:212:in `<main>'
from <internal:/.rbenv/versions/3.3.0/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/.rbenv/versions/3.3.0/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/zeitwerk-2.6.13/lib/zeitwerk/kernel.rb:34:in `require'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/bullet_train/super_scaffolding.rb:29:in `run'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bullet_train-super_scaffolding-1.6.38/lib/generators/super_scaffold/super_scaffold_generator.rb:32:in `generate'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:134:in `block in invoke_all'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:134:in `each'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:134:in `map'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:134:in `invoke_all'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/group.rb:232:in `dispatch'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/base.rb:584:in `start'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/generators.rb:261:in `invoke'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/commands/generate/generate_command.rb:26:in `perform'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/command/base.rb:178:in `invoke_command'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/command/base.rb:73:in `perform'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:71:in `block in invoke'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:149:in `with_argv'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/command.rb:69:in `invoke'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/railties-7.1.3.2/lib/rails/commands.rb:18:in `<main>'
from <internal:/.rbenv/versions/3.3.0/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from <internal:/.rbenv/versions/3.3.0/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
from /.rbenv/versions/3.3.0/lib/ruby/gems/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
from bin/rails:4:in `<main>'
Being that the model doesn't exist yet, it errors out when trying to figure out how to constantize.
Not sure the solution here. I ended up doing a manual rails g model command and using the --skip-migration-generation flag.