使用活动管理轨道时发生主键冲突5

时间:2017-06-23 14:03:49

标签: ruby-on-rails activeadmin

我正在使用一个非常简单的博客应用程序学习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

1 个答案:

答案 0 :(得分:0)

从允许的参数中删除:id

ActiveRecord会为您处理。

ActiveAdmin.register Category do
  permit_params :name
end