Когда я создаю новое объявление (объявление нового продукта) в своем приложении rails 5, я выбираю категорию через раскрывающееся меню, например, электронику, улучшение дома и т. Д. Если после создания элемента я возвращаюсь и редактирую его, у меня есть чтобы снова выбрать категорию, иначе она больше не будет иметь категорию. Как я могу сказать, чтобы категория была либо запомнилась, либо была заполнена, когда я перехожу к редактированию? Наверное, легко для не-нуба ... спасибо!При редактировании сообщения/продукта, как его получить, чтобы запомнить категорию (i/o мне нужно переустановить его)?
Это поле ввода категория по форме:
<div class="field">
<%= f.label :category %>
<%= select_tag(:category_id, options_for_select(Category.all.map{|c| [ c.name, c.id]}), :prompt => "Select one!") %>
Я не знаю, что еще я должен опубликовать, так вот код категории контроллер:
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
Таблица продуктов в БД:
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"
конец
у меня есть, в category.rb: 'has_many: ' продуктов и в product.rb, у меня есть 'belongs_to: category' Ты говоришь, что нужно изменить те, что вы «Рекомендовать или должны ли это быть прекрасными? – Nick
Полностью штраф, у вас также есть идентификатор в БД? например. category_id в таблице продуктов? –
Да (я вставил таблицу продуктов в исходный вопрос) – Nick