我正在使用一个非常简单的博客应用程序学习RoR,我只是让活跃的管理员工作。在添加新类别的同时,我一直在努力 Admin :: CategoriesController中的ActiveRecord :: RecordNotUnique #create
记录已存在于类别表中,因此存在违规行为。但是id是db生成的,如果它不使用持久的唯一值。我在我的类别管理控制器中添加了permit_params。
分类管理员
ActiveAdmin.register Category do
permit_params :id, :name
end
我不知道如何指定id是主键,应该是db生成的。当我使用常规的持久方法时,它工作正常,这是我的常规类别控制器
class CategoriesController < ApplicationController
before_action :set_category, only: [:show, :edit, :update, :destroy]
before_action :category_params, :only [:create, :new]
def index
@categories = Category.all
end
def show
@title = @category.name;
@posts = @category.posts;
end
private
# Use callbacks to share common setup or constraints between actions.
def set_category
@category = Category.find(params[:id])
end
def category_params
params.require(:category).permit(:name);
end
end
我希望我的问题很清楚,并且没有错过任何相关信息。 此外,如果表格中有4个类别,则在4次违规后,它会提交第5次,因为不再有违规行为。
这似乎是一个愚蠢的问题,但我没有解决方案:(
请帮忙
Ananth
答案 0 :(得分:0)
从允许的参数中删除:id
。
ActiveRecord会为您处理。
ActiveAdmin.register Category do
permit_params :name
end