0

J'ai un problème lors de l'ajout de catégories à l'article dans mon formulaire simple. Les catégories apparaissent dans le formulaire simple_for mais le category_id n'est pas attribué à l'article lors de sa création! (params?)Problème Ajout d'une catégorie à l'article dans les rails

Tx pour votre aide!

J'ai créé deux modèles

class Category < ApplicationRecord 
    has_many :articles 
end 

class Article < ApplicationRecord 
    belongs_to :category 
    has_attachments :photos, maximum: 2 
end 

et une clé étrangère entre les

create_table "articles", force: :cascade do |t| 
    t.string "title" 
    t.text  "body" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "card_summary" 
    t.text  "summary" 
    t.integer "category_id" 
    t.index ["category_id"], name: "index_articles_on_category_id",  using: :btree 
end 

Le contrôleur Articles pour créer un article

def new 
    @article = Article.new 
end 

def create 
    @article = Article.new(article_params) 
    if @article.save 
    redirect_to article_path(@article) 
    else 
    render :new 
    end 
end 

private 

def article_params 
    params.require(:article).permit(:title, :card_summary, :summary, :body, photos: []) 
end 

et simple_form_for où je f .association (qui montre correctement les différentes catégories)Je pense que mon DB est correct car je peux attribuer une catégorie à un article avec la console, mais je suis coincé sous cette forme. Toute aide serait très appréciée. Thx Edouard

EDIT

Voici ma migration. Quelque chose ne va pas?

class AddCategoryReferenceToArticles < ActiveRecord::Migration[5.0] 
    def change 
    add_reference :articles, :category, foreign_key: true, index: true 
    end 
end 
+0

est pas dans votre params '.permit (: titre,: card_summary,: résumé,: le corps, les photos: []', ni Dans votre formulaire, mais dans votre migration apparaît 'category_id' –

+0

Voici ma migration – Edouard

Répondre

0

Ajout category_id dans article_params devrait résoudre le problème

def article_params 
    params.require(:article).permit(:title, :card_summary, :summary, :category_id, photos: []) 
end 
+0

C'était il! Un grand merci (presque brûler mon cerveau quotidien pour cela!);) – Edouard