我有一个模型,category_count,我想要属于2个模型,文章模型和类别模型。当我尝试访问 server / admin / articles 时 我收到错误未初始化的常量Article :: CategoryCount 。我正在使用active_admin进行管理。 当我这样做: server / articles / 1 / category_counts 我也收到错误未初始化的常量CategoryCountsController 我正在使用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
在我的模型/ article.rb和model / category.rb中,我设置了:
has_many:category_counts,as :: category_countable
在我的模型/ category_counts.rb中,我设置了:
belongs_to:category_countable,polymorphic:true
我的category_count_controller.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
答案 0 :(得分:1)
很可能您已将资源定义为
resources :category_counts
您收到错误,因为路线正在寻找server/articles/1/category_counts
。
注意复数 ** category_counts **。
如果仔细查看错误消息uninitialized constant
CategoryCountsController ,
路线正在寻找复数CategoryCountsController
要解决此问题,请重命名控制器
class CategoryCountsController < ApplicationController ## plural controller name
...
end
此外,请确保将控制器文件名重命名为category_counts_controller.rb
再次复数。
注意:根据rails惯例,控件名称应为复数。