0
我正在使用一個非常簡單的博客應用學習RoR,並且我剛剛獲得了活動管理員的工作。在添加新類別時,我一直收到 ActiveRecord :: RecordNotUnique在Admin :: CategoriesController#create使用活動管理滑軌時的主鍵違規5
記錄已存在於類別表中,因此存在違規。但ID是數據庫生成的,如果它不使用堅持一個獨特的價值。我在我的分類管理員控制器中添加了permit_params。
分類管理控制器
ActiveAdmin.register Category do
permit_params :id, :name
end
我不知道如何來指定id是主鍵,產生的應分貝。它工作得很好,當我用硬要正常的手段,這是我的正常類控制器
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
這沒有奏效我試過了我的帖子像'permit_params:title,:body,:category_id'但仍然拋出違反錯誤'ActiveRecord :: RecordNotUnique在Admin :: PostsController#create PG :: UniqueViolation:錯誤:重複鍵值違反唯一約束「posts_pkey」詳細信息:密鑰(id)=(3)已經存在。 :INSERT INTO「posts」(「title」,「body」,「category_id」,「created_at」,「updated_at」)VALUES($ 1,$ 2,$ 3,$ 4,$ 5)RETURNING「id」' – ananth
就像我說的,if我一直這樣做,它最終會插入一些獨特的東西,問題消失,但我不知道爲什麼密鑰的db代不工作 – ananth
你可以發佈**遷移創建表**嗎? 數據庫級必須有錯誤,因爲INSERT語句似乎找不到,甚至不會發送'id'。 –