Lorsque je crée une nouvelle annonce (nouvelle publication) dans l'application my rails 5, je sélectionne une catégorie dans le menu déroulant, par exemple l'électronique, l'amélioration de l'habitat, etc. Si après avoir créé un article, je l'édite, pour sélectionner à nouveau une catégorie, sinon elle n'aura plus de catégorie. Comment puis-je dire à la catégorie soit être rappelé ou être pré-rempli quand je vais modifier? Probablement facile pour un non-noob ... merci!Lors de la modification d'une publication/d'un produit, comment puis-je me souvenir de la catégorie (est-ce que je dois la resélectionner)?
C'est le champ de saisie de la catégorie sur le formulaire:
<div class="field">
<%= f.label :category %>
<%= select_tag(:category_id, options_for_select(Category.all.map{|c| [ c.name, c.id]}), :prompt => "Select one!") %>
Je ne sais pas ce que je devrais poster, voici donc les catégories code du contrôleur:
class CategoriesController < ApplicationController
before_action :set_category, only: [:show, :edit, :update, :destroy]
def index
@categories = Category.all
end
def show
end
def new
@category = Category.new
end
def edit
end
def create
@category = Category.new(category_params)
respond_to do |format|
if @category.save
format.html { redirect_to @category, notice: 'Category was successfully created.' }
else
format.html { render :new }
end
end
end
def update
respond_to do |format|
if @category.update(category_params)
format.html { redirect_to @category, notice: 'Category was successfully updated.' }
else
format.html { render :edit }
end
end
end
def destroy
@category.destroy
respond_to do |format|
format.html { redirect_to categories_url, notice: 'Category was successfully destroyed.' }
end
end
private
@category = Category.find(params[:id])
end
def category_params
params.require(:category).permit(:name, :desc)
end
end
Tableau des produits dans DB:
create_table "products", force: :cascade do |t|
t.string "name"
t.text "brief"
t.text "description"
t.string "buylink"
t.string "verdict"
t.string "category_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "image"
t.string "youtube"
t.integer "user_id"
t.string "goodverdict"
fin
je, en category.rb: 'has_many: products' et product.rb, je' belongs_to: category' Voulez-vous dire que je dois changer ceux que vous Recommandez ou devrait ceux qui ont été bien? – Nick
totalement bien, avez-vous aussi un ID dans la DB? par exemple. category_id dans la table des produits? –
Oui (j'ai collé la table des produits dans la question d'origine) – Nick