TypeError:错误的参数类型类(预期模块)与控制器有关

2023-12-21

所以我有一个名为 guest_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

而且我在controllers/concens/ 中有一个名为 data.rb 的问题:

module Data
    extend ActiveSupport:Concern

    def save_data(save_method)
        case save_method
            when "db"
                @guest = Guest.new(guest_params)
                if @guest.save
                    flash[:success] = "New guest entry created!"
                    redirect_to guests_path
                else
                    render 'new'
                end
            when "session"
                name = params[:guest][:name].to_s
                text = params[:guest][:text].to_s

                @guests_session = session[:guests]

                if session[:guests].nil?
                    @guests_session = [{:name => 'temp', :text => 'temp'}]
                else
                    logger.debug @guests_session
                    @guests_session.push({:name => name, :text => text})
                end

                session[:guests] = @guests_session
                redirect_to guests_path
        end
    end

    def display_data(display_method)
        case display_method
            when "db"
                @guests = Guest.all
            when "session"
                if session[:guests].nil?
                    @guests_session = [{:name => 'temp', :text => 'temp'}]
                else
                    #@guests_session = [{:name => 'temp', :text => 'temp'}]
                    @guests_session = session[:guests]
                end
        end
    end
end

现在,当我打开相应的视图时,出现此错误:

GuestController#index 中的类型错误 错误的参数类型类(预期的模块)

使用堆栈跟踪:

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'

我基本上只是想学习如何使用控制器的关注点。我想将我的代码的一大块分开,并将其放入相应的关注点中,以保持控制器的美观和干净。

在谷歌搜索或搜索有关控制器的问题时,没有太多可找到的东西,所以我提出了这个新问题,希望得到帮助。

那么如何解决这个问题以及我做错了什么?


您遇到了名称冲突 -Data类存在于核心 Ruby 中:链接在这里 http://www.ruby-doc.org/core-2.1.3/Data.html。这意味着 Rails 不会启动 const_missing 并且您的关注点永远不会加载。将您的问题重命名为 DateModule 或类似名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TypeError:错误的参数类型类(预期模块)与控制器有关 的相关文章

  • 在Unix下,判断执行该程序的用户是否是root?

    我正在编写一个 rake 脚本 并希望检测 如果可能的话 使用 Ruby 而不是 bash 执行 rake 脚本的用户是否具有 root 权限 如果它不是 root 那么我想终止脚本 Use uid http www ruby doc or
  • ActionMailer最佳实践:调用模型或控制器中的方法?

    发送电子邮件通常是在对模型执行操作后调用的 但电子邮件本身是一个视图操作 我正在寻找您如何思考要问自己哪些问题来确定将操作邮件程序方法调用放在哪里 我见过 使用过它们 在模型方法中 相关但独立的关注点耦合不良 在模型的回调中 例如 afte
  • Rails *已完成 406 不可接受”在生产中..在暂存中工作

    我遇到了一个错误 已完成 406 不可接受 在生产服务器中 而在登台服务器中我没有面对 相同的代码在暂存中工作正常 但在生产中无法工作 两个环境都安装了相同的 gem 我使用的是 Rails 版本 3 0 10 在我的生产环境中 GET 请
  • Rails 路由:仅具有自定义操作的资源

    我有一个NotificationsController 其中我只有动作clear 我想通过执行 POST notifications clear 来访问此操作 所以我在我的路由器中写了这个 resources notifications o
  • 使用 Ruby 解析纬度和经度

    我需要在 Ruby 下解析一些用户提交的包含纬度和经度的字符串 结果应以双精度形式给出 Example 08 04 49 09 13 12 Result 8 080278 9 22 我查看了 Geokit 和 GeoRuby 但没有找到解决
  • 为什么我不能让 rake db:migrate 为 ruby​​.railstutorial.org 工作

    我决定完成教程 创建新应用程序并添加新应用程序后user string email string然后执行rake db migrate在应用程序目录中 我得到以下输出 rake aborted undefined method task f
  • window.location.href 不工作

    我的网站是http www collegeanswerz com http www collegeanswerz com 我正在使用导轨 该代码用于搜索大学 我希望用户能够输入大学名称 单击 Enter 然后转到网址 而不是看到搜索结果 如
  • 配置 Puma 和 Sidekiq

    可能更多的是试图克服学习曲线 实际的代码问题 如果这看起来很愚蠢 我深表歉意 目前我在生产中遇到了这个错误 基本上我一直收到这个 redis池太小 的消息 我不知道从哪里开始 实际上我基本上不了解如何使用 puma 或配置后的任何内容 如缩
  • Rails 3 在迁移问题中添加外键

    有谁知道使用迁移在 Rails 3 中创建外键的方法吗 the 外国人宝石 https github com matthuhiggins foreigner对我来说效果很好 它向 Rails 迁移添加了一些方法 可以轻松创建和删除外键 ex
  • Rails sunspot-solr - 带连字符的单词

    我正在使用 sunspot rails gem 到目前为止一切都很完美 但是 我没有得到带有连字符的单词的任何搜索结果 例子 字符串 tron 返回很多结果 所有文章中提到的词都是e tron 字符串 e tron 返回 0 个结果 即使这
  • 在 Rails 3 项目中加载种子数据

    到目前为止 我一直在使用 Fixtures 以及 rake 任务来为我的数据库创建一些种子数据 这工作得很好 但我突然遇到了奇怪的问题 比如在模型中获取 autogen id 1 2 3 然后在连接模型中获取错误的 id 使得关联根本不起作
  • 如何访问 IRB 中所需的 Ruby 文件中定义的变量?

    文件welcome rb包含 welcome message hi there 但在 IRB 中 我无法访问刚刚创建的变量 require welcome rb puts welcome message gt undefined local
  • rspec 在需要存根的私有方法中测试私有方法

    Simplecov 检测到我遗漏了一些测试lib api verson rb class class ApiVersion def initialize version version version end def matches req
  • 视频无法使用 Paperclip Gem - Rails 中的 ffmpeg 上传

    我可以上传图像 但是 当我尝试上传视频时 它会显示为黑屏 并且播放按钮不起作用 我不确定我哪里错了 我需要视频播放器才能实现此功能吗 这可能是一个简单的解决方案 但是 我是 Rails 新手 任何帮助是极大的赞赏 谢谢 邮政模型 class
  • 在 Rails 中调用 javascript 函数 onclick

    我的观点之一有以下代码
  • 我想使用 EtherPad(或克隆版本)。我的站点正在运行 Ruby on Rails。 API 还是本地安装?

    我想在我的网站上使用 etherpad 界面 两个问题 1 是否有任何带有 etherpad api 的网站可以让我远程调用 2 如果没有 安装scala并让两者同时运行有多麻烦 Thanks 查看http piratepad net ht
  • Rails 身份验证插件推荐

    我想向我的 Rails 应用程序添加身份验证 我遇到了几个这样做的插件 acts as authenticated restful authentication Authlogic 等 我还没有看到一篇文章描述使用每种方法的差异 优点和缺点
  • Rails 删除方法不起作用

    好吧 我在 Ruby on Rails 中的删除方法上遇到了这样的问题 我想 我尝试了我读过的所有内容 但它不起作用 也许你可以帮助解决这个问题 当我单击链接时 它会重定向到患者 1 confirm Are you sure 3F meth
  • 如何在 rake 任务中包含 ActionMailer 类?

    我想在我的 rake 任务中使用 ActionMailer 以便在特定时间向人们发送电子邮件 我在 app mailers 文件夹中编写了一个邮件程序类 如下所示 class AlertsMailer lt ActionMailer Bas
  • MacOS 每秒唤醒次数错误

    构建 Rails 应用程序 ruby 2 4 0p0 Rails 5 1 4 并使用我的 Macbook Air MacOS High Sierra 10 13 2 进行本地测试 我不断遇到此问题 过去 241 秒内有 45001 次唤醒

随机推荐

  • 无法启动“./qemu/linux-x86_64/qemu-system-i386”:没有这样的文件或目录

    使用 25rc1 SDK 工具时 我在从 PATH 启动模拟器时遇到问题 which emulator home ligi bin android sdk tools emulator emulator M Could not launch
  • 检测iframe内SPA(单页应用程序)的URL变化

    我有一个渲染 iframe 的 React Web 应用程序 iframe 显示简单的网站或 SPA 网站 我想在每次 iframe 中的 URL 发生变化时调用一个函数 多个解决方案正在使用 onLoad 但这不适用于我检查过的 SPA
  • 配置 nginx 和 uwsgi 时出现“没有此类文件或目录”错误

    更新 如果我不使用套接字并使用127 0 0 1 3031相反 一切正常 Nginx版本是1 6 3 uwsgi是2 0 11 1 etc uwsgi ini uwsgi uid uwsgi gid uwsgi pidfile run uw
  • Docker-Compose 上的 InfluxDB 无法读取 SSL 证书文件

    我在尝试使用在 Docker Compose 上运行的 InfluxDB v1 8 配置 SSL 时遇到一些问题 我跟着官方文档 https docs influxdata com influxdb v1 8 administration
  • Matlab:是否可以创建信号处理程序(.m 脚本)

    我查看了文档等 但没有看到任何明显的东西 我想要一个可以拦截的信号处理程序 C 或其他一些可用于中断长时间运行的脚本 每个离散计算通常 Matlab 确实有 COM 的事件处理程序 但它仅限于 Windows 而我处于 nix 环境中 如果
  • 在 AutoHotkey 中按住鼠标左键

    I want a script where pressing F1 makes AutoHotkey hold down the left mouse button I then want the script to release the
  • “事件驱动”和“面向对象”编程之间的关系是什么?

    如今 我几乎到处都听到 事件驱动 编程 维基百科说 在计算机编程中 事件驱动编程是一种编程范例 其中程序的流程由用户操作 鼠标单击 按键 传感器输出或来自其他程序 线程的消息等事件确定 事件驱动编程是图形用户界面和其他应用程序 例如 Jav
  • UIPicker 检测当前选定行上的点击

    我有一个UIPickerView和方法didSelectRow点击 a 时不会调用选定的行 我需要处理这个案子 有任何想法吗 首先 使类符合UIGestureRecognizerDelegate协议 然后 在视图设置中 UITapGestu
  • Python CSV 阅读器返回行作为列表

    我正在尝试使用 python 解析 CSV 并希望能够对一行中的项目进行索引 以便可以使用以下命令访问它们row 0 row 1 等等 到目前为止 这是我的代码 def get bitstats url http bitcoincharts
  • Swift 将数据从子视图发送到父视图控制器

    我正在开发一个应用程序 其中有一个视图控制器和子视图 在子视图上我正在加载谷歌地图 在主视图上我有一个标签 我的问题是如何将数据从子视图 地图地理位置 传递到主视图上的标签 并在使用 Swift 更新位置时更新该数据 我发现的所有教程都使用
  • 时间:2019-05-17 标签:c#progressbarnotupdate

    我有一个 ProgressBarWindow 它有一个进度条和一个取消按钮 我用它来报告文件 I O 的进度 然而 尽管所有工作都是在后台工作人员中完成的 但 ProgressBarWindow 的 UI 线程和我的主窗口都挂起 进度条已渲
  • 召回率和精确率后的分类准确率

    我只是想知道这是否是计算分类准确性的合法方法 获取精确召回阈值 对于每个阈值 对连续 y scores 进行二值化 从列联表 混淆矩阵 计算它们的准确性 返回阈值的平均准确度 recall precision thresholds prec
  • 复制构造函数和防御性复制

    什么是复制构造函数 有人可以分享一个有助于理解的小例子吗防御性复制原则 这是一个很好的例子 class Point final int x final int y Point int x int y this x x this y y Po
  • PHP Twitter API 分块上传问题:分段加起来不等于提供的总文件大小

    所以我将 Twitter API 集成到一个应用程序中 我需要它能够发布图像 视频和动画 GIF 我正在使用 php5 6 和 J7mbo twitter api php 包 到目前为止我的代码如下 file fopen realpath
  • 将文本项目符号添加到 C# 表单

    我正在用 C 创建一个表单 需要在表单上显示文本 我需要一些文本显示在带项目符号的无序列表中 使用标签时可以做到这一点吗 或者富文本框 我没有使用 ASP NET 这是针对桌面应用程序的 我的消息应该是这样的 要继续 请选择以下操作之一 单
  • IOError:[Errno 2]没有这样的文件或目录(当它确实存在时)Python [重复]

    这个问题在这里已经有答案了 我正在通过 python 中的 uart 传输文件文件夹 下面您可以看到简单的功能 但有一个问题 因为我收到如标题所示的错误 IOError Errno 2 No such file or directory 1
  • 在 EXCEL 中构建 SQL SELECT 语句

    我正在尝试在 Excel 中构建 SQL 语句 Sample 我正在尝试构建 sql 语句 但只想在 DIM 列中有值时添加列 因此 在 SQL 中执行时 SQL 看起来很整洁 没有任何语法错误 这里如何消除 from 关键字之前的多余逗号
  • 酿造更新破坏了什么?

    自制程序工作正常 直到我做了一个brew update 好几个月没有更新了 brew 更新完成后 每个brew命令会产生相同 相似的错误消息 usr local Library Homebrew global rb 6 in require
  • 两个菜单 Android 应用程序

    我工作的公司有一个 iOS 应用程序 它有两个滑动菜单 左侧一个用于导航 右侧一个显示应用程序范围的上下文信息和操作 iOS 应用程序有一个类似于 ActionBar 的小部件 在显示任一菜单时 意味着它是隐藏的 它会随主内容窗格一起滑动
  • TypeError:错误的参数类型类(预期模块)与控制器有关

    所以我有一个名为 guest controller rb 的控制器 如下所示 class GuestsController lt ApplicationController include Data def index display da