在 Roda + Sequel API 中加载依赖项

问题描述

最近我一直在尝试 Roda + Sequel。我创建了具有以下文件结构的简单 API:

eel.start("main.html",size=(1280,720))

我有 ├── CHANGELOG.md ├── Gemfile ├── Gemfile.lock ├── procfile ├── README.md ├── Rakefile ├── app │   ├── models │   │   ├── category.rb │   │   ├── organization.rb │   │   └── user.rb │   ├── schemas │   │   ├── api │   │   │   └── v1 │   │   │   ├── login_schema.rb │   │   │   ├── send_reset_password_instructions_schema.rb │   │   │   └── update_password_schema.rb │   │   └── application_schema.rb │   ├── serializers │   │   ├── api │   │   │   └── v1 │   │   │   ├── categories_serializer.rb │   │   │   ├── login_serializer.rb │   │   │   └── refresh_token_serializer.rb │   │   └── application_serializer.rb │   └── services │   └── users │   └── authenticator.rb ├── app.rb ├── bin │   ├── console │   └── rake ├── config │   ├── active_support.rb │   ├── bcrypt.rb │   ├── boot.rb │   ├── database.rb │   ├── dry_rb.rb │   ├── environment_variables.rb │   ├── freeze.rb │   ├── i18n.rb │   ├── locales │   │   ├── errors.pl.yml │   │   └── pl.yml │   ├── logger.rb │   ├── models.rb │   ├── oj.rb │   └── puma.rb ├── config.ru ├── db │   ├── migrate │   │   ├── 001_enable_uuid_ossp_extension.rb │   │   ├── 002_create_organizations_table.rb │   │   ├── 003_drop_organizations_name_unique_index.rb │   │   ├── 004_create_categories_table.rb │   │   ├── 005_enable_citext_extension.rb │   │   ├── 006_create_users_table.rb │   │   └── 007_add_authentication_token_to_users.rb │   ├── seeds │   │   ├── categories.rb │   │   ├── organizations.rb │   │   └── users.rb │   ├── seeds.rb │   └── structure.sql ├── lib │   ├── authentication_token_generator.rb │   ├── authorization_token_validator.rb │   ├── authorization_tokens_generator.rb │   ├── constants.rb │   ├── exceptions.rb │   ├── message_verifier.rb │   └── update_password_token_generator.rb └── spec ├── lib │   ├── authentication_token_generator_spec.rb │   ├── authorization_token_validator_spec.rb │   ├── authorization_tokens_generator_spec.rb │   ├── constants_spec.rb │   ├── message_verifier_spec.rb │   └── update_password_token_generator_spec.rb ├── models │   ├── category_spec.rb │   ├── organization_spec.rb │   └── user_spec.rb ├── requests │   ├── api │   │   └── v1 │   │   ├── categories │   │   │   └── index_spec.rb │   │   ├── login_spec.rb │   │   ├── logout_spec.rb │   │   ├── refresh_token_spec.rb │   │   ├── send_reset_password_instructions_spec.rb │   │   └── update_password_spec.rb │   └── heartbeat_spec.rb ├── schemas │   └── api │   └── v1 │   ├── login_schema_spec.rb │   ├── send_reset_password_instructions_schema_spec.rb │   └── update_password_schema_spec.rb ├── services │   └── users │   └── authenticator_spec.rb ├── spec_helper.rb └── support ├── api_helpers.rb └── shared_examples └── unauthorized.rb 文件,它负责加载我的所有依赖项:

config/boot.rb

一切正常,但我想知道是否有更好的方法

我尝试使用 # frozen_string_literal: true # This file is responsible for loading all configuration files. require 'pry' require 'securerandom' # Require config files. require_relative './environment_variables' require_relative './database' require_relative './models' require_relative './i18n' require_relative './dry_rb' require_relative './oj' require_relative './active_support' require_relative './bcrypt' # Require all files in lib folder. require './lib/constants' require './lib/exceptions' require './lib/authentication_token_generator' require './lib/authorization_tokens_generator' require './lib/authorization_token_validator' require './lib/update_password_token_generator' require './lib/message_verifier' # Require all files in app/models folder. require './app/models/organization' require './app/models/category' require './app/models/user' # Require all files in app/schemas folder. require './app/schemas/application_schema' require './app/schemas/api/v1/login_schema' require './app/schemas/api/v1/update_password_schema' require './app/schemas/api/v1/send_reset_password_instructions_schema' # Require all files in app/services folder. require './app/services/users/authenticator' # Require all files in app/serializers folder. require './app/serializers/application_serializer' require './app/serializers/api/v1/categories_serializer' require './app/serializers/api/v1/login_serializer' require './app/serializers/api/v1/refresh_token_serializer' require_relative './logger' require_relative './freeze' 辅助方法清理它:

Dir

但是使用这种方法,我的测试失败了:

# frozen_string_literal: true

# This file is responsible for loading all configuration files.

require 'pry'
require 'securerandom'

# Require config files.
require_relative './environment_variables'
require_relative './database'
require_relative './models'
require_relative './i18n'
require_relative './dry_rb'
require_relative './oj'
require_relative './active_support'
require_relative './bcrypt'


# Require all files in the lib folder.
Dir['./lib/**/**/*.rb'].each { |f| require f }

# Require all files in the app folder.
Dir['./app/**/**/*.rb'].each { |f| require f }

require_relative './logger'
require_relative './freeze'

似乎测试失败了,因为在 An error occurred while loading spec_helper. Failure/Error: class LoginSchema < ::ApplicationSchema # @!method params # It stores rules for validating POST /api/v1/login endpoint params using dry-validation DSL. params do required(:email).filled(:string).value(format?: Constants::EMAIL_REGEX) required(:password).filled(:string) end NameError: uninitialized constant ::ApplicationSchema # ./app/schemas/api/v1/login_schema.rb:11:in `<module:V1>' # ./app/schemas/api/v1/login_schema.rb:4:in `<module:Api>' # ./app/schemas/api/v1/login_schema.rb:3:in `<top (required)>' # ./config/boot.rb:23:in `require' # ./config/boot.rb:23:in `block in <top (required)>' # ./config/boot.rb:23:in `each' # ./config/boot.rb:23:in `<top (required)>' # ./app.rb:5:in `require_relative' # ./app.rb:5:in `<top (required)>' # ./spec/spec_helper.rb:8:in `require_relative' # ./spec/spec_helper.rb:8:in `<top (required)>' No examples found. No examples found. Finished in 0.00004 seconds (files took 1.08 seconds to load) 0 examples,0 failures,1 error occurred outside of examples Finished in 0.00004 seconds (files took 1.08 seconds to load) 0 examples,1 error occurred outside of examples 之前需要 Api::V1::LoginSchema

我将不胜感激任何建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)