Я новичок в Ruby on Rails, поэтому, пожалуйста, со мной."Параметр отсутствует или значение пуст: цвет" ошибка в контроллере
Я следил за учебным пособием на YouTube с использованием простой модели, распечатывал результаты и обновлял модель с помощью формы, а также находил и заменял то, что я пытался выполнить («текстовые файлы, учебные материалы связаны с изображениями)
все работало до тех пор, примерно в то время я просто хотел в одну страницу индекса и попытался сливаясь всю логику контроллера в индекс.
в настоящее время я получаю сообщение об ошибке чтения param is missing or the value is empty: color
на params.require
в ниже контроллера.
class ColorsController < ApplicationController
before_action :find_color, only: [:destroy]
def index
@colors = Color.all.order("created_at DESC")
@color = Color.new(color_params)
end
def destroy
@color.destroy
end
private
def find_color
@color = Color.find(params[:id])
end
def color_params
params.require(:color).permit(:file)
end
end
Что я беру из этого, так это то, что он не распознает переменную экземпляра @color, но я не знаю или почему я должен исправить это.
Модель:
class Color < ActiveRecord::Base
has_attached_file :file
validates_attachment_content_type :file, :content_type => ["application/xml"]
end
Форма:
= simple_form_for @color do |f|
= f.input :file
= f.submit
Объяснение того, что я делаю неправильно очень ценится.
Почему страница индекса получит форму представления с любые параметры? Как вы его подаете методу индекса? –
Форма частично отображается в индексе. Разве это не так? – JackHasaKeyboard
Нет; посмотрите на визуализированный HTML. Rails использует соглашение; форма будет генерировать обычный путь отправки формы Rails для модели. Если вы хотите, чтобы ваше приложение работало не-Rails-y, вам нужно вручную указать контроллер/метод, который вы хотите отправить. –