Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails TypeError:控制器问题的参数类型类(预期模块)错误_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails TypeError:控制器问题的参数类型类(预期模块)错误

Ruby on rails TypeError:控制器问题的参数类型类(预期模块)错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个名为guests_controller.rb的控制器,看起来像这样: class GuestsController < ApplicationController include Data def index display_data("db") display_data("session") end def new @guest = Guest.new end def creat

我有一个名为guests_controller.rb的控制器,看起来像这样:

class GuestsController < ApplicationController
    include Data

    def index
        display_data("db")
        display_data("session")
    end

    def new
        @guest = Guest.new
    end

    def create
        case params[:option]
            when '0'
                logger.debug 'Salvestame andmebaasi'
                save_data("db")
            when '1'
                logger.debug 'Salvestame sessiooni'
                save_data("session")
        end
    end

    private
    def guest_params
        params.require(:guest).permit(:name, :text)
    end
end
现在,当我打开相应的视图时,出现以下错误:

GuestController#索引中的类型错误 错误的参数类型类(应为模块)

使用stacktrace:

app/controllers/guests_controller.rb:2:in `include'
app/controllers/guests_controller.rb:2:in `<class:GuestsController>'
app/controllers/guests_controller.rb:1:in `<top (required)>'
activesupport (4.1.5) lib/active_support/dependencies.rb:443:in `load'
activesupport (4.1.5) lib/active_support/dependencies.rb:443:in `block in load_file'
activesupport (4.1.5) lib/active_support/dependencies.rb:633:in `new_constants_in'
activesupport (4.1.5) lib/active_support/dependencies.rb:442:in `load_file'
activesupport (4.1.5) lib/active_support/dependencies.rb:342:in `require_or_load'
activesupport (4.1.5) lib/active_support/dependencies.rb:480:in `load_missing_constant'
activesupport (4.1.5) lib/active_support/dependencies.rb:180:in `const_missing'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:238:in `const_get'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:238:in `block in constantize'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:236:in `each'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:236:in `inject'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:236:in `constantize'
activesupport (4.1.5) lib/active_support/dependencies.rb:552:in `get'
activesupport (4.1.5) lib/active_support/dependencies.rb:583:in `constantize'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:78:in `controller_reference'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:68:in `controller'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:46:in `call'
actionpack (4.1.5) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.1.5) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.1.5) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:678:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/flash.rb:254:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.1.5) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.1.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
activerecord (4.1.5) lib/active_record/migration.rb:380:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.1.5) lib/active_support/callbacks.rb:82:in `run_callbacks'
actionpack (4.1.5) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.5) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.5) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.5) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.5) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.5) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.5) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.5) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.1.5) lib/rails/engine.rb:514:in `call'
railties (4.1.5) lib/rails/application.rb:144:in `call'
passenger (4.0.50) lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
passenger (4.0.50) lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
passenger (4.0.50) lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
passenger (4.0.50) lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
app/controllers/guests\u controller.rb:2:in'include'
app/controllers/guests\u controller.rb:2:in`'
app/controllers/guests\u controller.rb:1:in`'
activesupport(4.1.5)lib/active_support/dependencies.rb:443:in'load'
activesupport(4.1.5)lib/active\u support/dependencies.rb:443:in`block in load\u file'
activesupport(4.1.5)lib/active\u support/dependencies.rb:633:in'new\u constants\u in'
activesupport(4.1.5)lib/active\u support/dependencies.rb:442:“加载文件”中
activesupport(4.1.5)lib/active\u support/dependencies.rb:342:in'require\u或\u load'
activesupport(4.1.5)lib/active\u support/dependencies.rb:480:in'load\u missing\u constant'
activesupport(4.1.5)lib/active\u support/dependencies.rb:180:in'const\u missing'
activesupport(4.1.5)lib/active\u-support/endoctor/methods.rb:238:in'const\u-get'
activesupport(4.1.5)lib/active_support/definctor/methods.rb:238:in'block in constantize'
activesupport(4.1.5)lib/active_support/definactor/methods.rb:236:in'each'
activesupport(4.1.5)lib/active_-support/endoctor/methods.rb:236:in'inject'
activesupport(4.1.5)lib/active_support/definctor/methods.rb:236:in'constantize'
activesupport(4.1.5)lib/active\u support/dependencies.rb:552:in'get'
activesupport(4.1.5)lib/active_support/dependencies.rb:583:in'constantize'
actionpack(4.1.5)lib/action\u dispatch/routing/route\u set.rb:78:in'controller\u reference'
actionpack(4.1.5)lib/action\u dispatch/routing/route\u set.rb:68:in'controller'
actionpack(4.1.5)lib/action\u dispatch/routing/route\u set.rb:46:in'call'
actionpack(4.1.5)lib/action_dispatch/journey/router.rb:71:in‘block in call’
actionpack(4.1.5)lib/action_dispatch/journe/router.rb:59:in'each'
actionpack(4.1.5)lib/action_dispatch/journey/router.rb:59:in'call'
actionpack(4.1.5)lib/action\u dispatch/routing/route\u set.rb:678:in'call'
典狱长(1.2.3)lib/warden/manager.rb:35:in'block in call'
典狱长(1.2.3)lib/warden/manager.rb:34:in'catch'
典狱长(1.2.3)lib/warden/manager.rb:34:in'call'
机架(1.5.2)lib/rack/etag.rb:23:in'call'
rack(1.5.2)lib/rack/conditionalget.rb:25:in'call'
机架(1.5.2)lib/rack/head.rb:11:in'call'
actionpack(4.1.5)lib/action_dispatch/middleware/params_parser.rb:27:in'call'
actionpack(4.1.5)lib/action_dispatch/middleware/flash.rb:254:in'call'
框架(1.5.2)lib/rack/session/abstract/id.rb:225:在“上下文”中
机架(1.5.2)lib/rack/session/abstract/id.rb:220:in'call'
actionpack(4.1.5)lib/action\u dispatch/middleware/cookies.rb:560:in'call'
activerecord(4.1.5)lib/active\u record/query\u cache.rb:36:in'call'
activerecord(4.1.5)lib/active\u record/connection\u adapters/abstract/connection\u pool.rb:621:in'call'
activerecord(4.1.5)lib/active_record/migration.rb:380:in'call'
actionpack(4.1.5)lib/action_dispatch/middleware/callbacks.rb:29:in'block in call'
activesupport(4.1.5)lib/active\u support/callbacks.rb:82:in'run\u callbacks'
actionpack(4.1.5)lib/action_dispatch/middleware/callbacks.rb:27:in'call'
actionpack(4.1.5)lib/action_dispatch/middleware/reloader.rb:73:in'call'
actionpack(4.1.5)lib/action\u dispatch/middleware/remote\u ip.rb:76:in'call'
actionpack(4.1.5)lib/action\u dispatch/middleware/debug\u exceptions.rb:17:in'call'
actionpack(4.1.5)lib/action\u dispatch/middleware/show\u exceptions.rb:30:in'call'
railties(4.1.5)lib/rails/rack/logger.rb:38:in'call_app'
railties(4.1.5)lib/rails/rack/logger.rb:20:in'block in call'
activesupport(4.1.5)lib/active_support/taged_logging.rb:68:in`block in taged'
activesupport(4.1.5)lib/active\u support/taged\u logging.rb:26:in'taged'
activesupport(4.1.5)lib/active\u support/taged\u logging.rb:68:in'taged'
railties(4.1.5)lib/rails/rack/logger.rb:20:in'call'
actionpack(4.1.5)lib/action\u dispatch/middleware/request\u id.rb:21:in'call'
rack(1.5.2)lib/rack/methodoverride.rb:21:in'call'
rack(1.5.2)lib/rack/runtime.rb:17:in'call'
activesupport(4.1.5)lib/active\u support/cache/strategy/local\u cache\u middleware.rb:26:in'call'
机架(1.5.2)lib/rack/lock.rb:17:in'call'
actionpack(4.1.5)lib/action\u dispatch/middleware/static.rb:64:in'call'
rack(1.5.2)lib/rack/sendfile.rb:112:in'call'
railties(4.1.5)lib/rails/engine.rb:514:in'call'
railties(4.1.5)lib/rails/application.rb:144:in'call'
乘客(4.0.50)lib/phusion\u乘客/机架/线程\u处理器\u扩展。rb:74:正在“处理请求”
passenger(4.0.50)lib/phusion\u passenger/request\u handler/thread\u handler.rb:141:in'accept\u and\u process\u next\u request'
passenger(4.0.50)lib/phusion\u passenger/request\u handler/thread\u handler.rb:109:in'main\u loop'
passenger(4.0.50)lib/phusion\u passenger/request\u handler.rb:455:in'block(3层)in start\u threads'
我基本上只是想学习如何使用控制器的关注点。我想分离一大块代码,并将其放入相应的关注点中,以保持控制器的整洁

当谷歌搜索或搜索控制器的问题时,并没有什么可以找到的,所以我提出了这个新问题,希望能得到帮助


那么这个问题怎么解决?我做错了什么?

您在数据关注点中做了一个简单的输入错误-它应该是
extend-ActiveSupport::concern
(注意双冒号,它是Ruby中的名称空间分隔符)。

您遇到了名称冲突-
数据
类存在于core Ruby:。这意味着Rails不会启动const_missing,您的关注点也不会加载。将您的关注点重命名为DateModule或类似名称。

似乎确实是一个输入错误,但即使将其更改为:'extend ActiveSupport::concern',我似乎仍会遇到相同的错误。重新启动web服务器以防万一。您的系统中是否还有一个名为Data的类?前
app/controllers/guests_controller.rb:2:in `include'
app/controllers/guests_controller.rb:2:in `<class:GuestsController>'
app/controllers/guests_controller.rb:1:in `<top (required)>'
activesupport (4.1.5) lib/active_support/dependencies.rb:443:in `load'
activesupport (4.1.5) lib/active_support/dependencies.rb:443:in `block in load_file'
activesupport (4.1.5) lib/active_support/dependencies.rb:633:in `new_constants_in'
activesupport (4.1.5) lib/active_support/dependencies.rb:442:in `load_file'
activesupport (4.1.5) lib/active_support/dependencies.rb:342:in `require_or_load'
activesupport (4.1.5) lib/active_support/dependencies.rb:480:in `load_missing_constant'
activesupport (4.1.5) lib/active_support/dependencies.rb:180:in `const_missing'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:238:in `const_get'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:238:in `block in constantize'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:236:in `each'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:236:in `inject'
activesupport (4.1.5) lib/active_support/inflector/methods.rb:236:in `constantize'
activesupport (4.1.5) lib/active_support/dependencies.rb:552:in `get'
activesupport (4.1.5) lib/active_support/dependencies.rb:583:in `constantize'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:78:in `controller_reference'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:68:in `controller'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:46:in `call'
actionpack (4.1.5) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.1.5) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.1.5) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.1.5) lib/action_dispatch/routing/route_set.rb:678:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:25:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/flash.rb:254:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.1.5) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.1.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:in `call'
activerecord (4.1.5) lib/active_record/migration.rb:380:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.1.5) lib/active_support/callbacks.rb:82:in `run_callbacks'
actionpack (4.1.5) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.1.5) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.1.5) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.1.5) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.1.5) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.1.5) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.1.5) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.1.5) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.1.5) lib/action_dispatch/middleware/static.rb:64:in `call'
rack (1.5.2) lib/rack/sendfile.rb:112:in `call'
railties (4.1.5) lib/rails/engine.rb:514:in `call'
railties (4.1.5) lib/rails/application.rb:144:in `call'
passenger (4.0.50) lib/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
passenger (4.0.50) lib/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
passenger (4.0.50) lib/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
passenger (4.0.50) lib/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'