我在YouTube上遵循了一个教程,涉及制作一个简单的模型,打印结果并使用表单更新模型,并找到并替换我想要完成的任务(“文本文件,教程涉及的图像)< / p>
直到我想要一个索引页并尝试将所有控制器逻辑合并到索引中时,一切都在进行。
我目前在以下控制器的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
非常感谢我对错误的解释。
答案 0 :(得分:0)
param丢失或值为空:颜色
您应该将index
方法更改为
def index
@colors = Color.all.order("created_at DESC")
@color = Color.new #notice the change here
end
此外,您应该定义一个create
方法,如下所示
def create
@color = Color.new(color_params)
respond_to do |format|
if @color.save
format.html { redirect_to @color, notice: 'Color was successfully created.' }
format.json { render :show, status: :created, location: @color }
else
format.html { render :new }
format.json { render json: @color.errors, status: :unprocessable_entity }
end
end
end