当前位置: 首页 > 知识库问答 >
问题:

Rails未初始化常量项目::CategoryCount

耿星雨
2023-03-14

我有一个模型,category_count,我想属于2个模型,一个文章模型和一个类别模型。当我尝试访问服务器/管理员/文章时,我得到一个错误未初始化的常量Article::CategoryCount。我使用active_admin进行管理。当我这样做时:服务器/文章/1/category_counts我也得到一个错误未初始化的常量类别CountsController我使用Rails 4

这是我category_count的迁移

class CreateCategoryCounts < ActiveRecord::Migration
  def change
    create_table :category_counts do |t|
      t.date :date
      t.belongs_to :category_countable, polymorphic: true

      t.timestamps
    end
      add_index :category_counts, :category_countable_id
  end
end

在我的模型/文章中。rb和型号/类别。rb我已设置:

has_many:category_counts,::category_countable

在我的模型/类别中,U计数。rb我已设置:

属于:category\u countable,多态:true

我的category\u count\u控制器。rb如下:

class CategoryCountController < ApplicationController
before_filter :load_category_countable

def index
 @category_counts = @category_countable.category_counts
end

def new
 @category_counts = @category_countable.category_counts.new
end

def create
 @category_count = @category_countable.category_counts.new(params[:category_count])
 if @category_count.save
    redirect_to [@category_countable, :category_counts], notice: "Category Count created."
 else
    render :new
 end
end

private

def load_category_countable
  klass= [Article, Category].detect {|c| params["#{c.name.underscore}_id"]}
  @category_countable = klass.find(params["#{klass.name.underscore}_id"])
end
end

共有1个答案

湛文乐
2023-03-14

很可能您已将资源定义为

资源:category_计数

您会收到错误消息,因为路由正在查找服务器/文章/1/category_counts。请注意复数**category_counts**。如果您仔细查看错误消息未初始化常量类别CountsController,路由正在查找复数类别CountsController

要修复此问题,请重命名控制器

class CategoryCountsController < ApplicationController ## plural controller name
...
end

此外,确保将控制器文件名重命名为category\u counts\u controller。rb再次复数。

注:根据rails惯例,controoller名称应为复数。

 类似资料:
  • 我希望有人能帮助我解决我在尝试使用factory_girl时收到的未初始化常量错误的问题。我知道类似的问题已经发布在堆栈溢出上,我试图在这些帖子中找到解决方案,但无济于事。 我有一个非rails项目,我正在使用rspec进行测试。我希望使用factory_girl来创建测试数据。 所以我把我的工厂定义在一个名为users.rb的文件中,在spec/工厂文件夹中。工厂如下: 终止 然后我做了一个测试

  • 没有安装 San-CLI 需要安装 npm i -g san-cli 快速创建 san init <app-name> 创建的是 san 项目。 app-name 是要创建的工程项目目录,可以为.(即在当前目录下创建)。 指定脚手架创建 san init <template> <app-name> template 是工程项目脚手架地址,支持 github、icode、gitlab 等 re

  • 项目初始化 俗话说磨刀不误砍柴工,在开始之前要完成一些准备工作以便移植其他框架的组件,首先我们得把框架给安装好,easySwoole是一个非常易于使用的框架,安装一样很简单,只需要切换到项目根目录 //命令行快速安装 bash <(curl https://www.easyswoole.com/installer.sh) //OR curl https://www.easyswoole.com/i

  • 我假设使用以下元素按以下顺序构建一个字节数组: 对称加密的AES密钥(对于AES 128有一个随机密钥,对于AES 128有一个随机初始化向量。在CBC模式下使用AES 128和PKCS5填充进行加密。在加密之前,文本用UTF-8进行编码) AES IV 加密消息(使用ECB模式下的RSA算法和PKCS1填充、先前生成的密钥和消息收件人的公钥) 我正在做的是获取每个参数的长度,以便创建新的byte

  • 我在这里看到过类似的问题,如果这看起来像是重复的,我很抱歉,但是类似问题的答案对我没有帮助。所以我有一个方法,它是类的一部分。这里是: 错误表明变量min可能尚未初始化。我不明白这怎么可能是真的。我觉得变量不可能不在for循环之外初始化。请帮忙。谢谢