我的简单模型验证存在问题。 输入没有SKU的材料会给我带来错误信息:
材料#中的NoMethodError创建未定义的方法`empty?'对于 零:NilClass
material.rb:
class Material < ActiveRecord::Base
validates :sku, :presence => true
end
materials_controler.rb(仅限创建部分):
# POST /materials
# POST /materials.json
def create
@material = Material.new(material_params)
respond_to do |format|
if @material.save
format.html { redirect_to @material, notice: 'Material was successfully created.' }
format.json { render :show, status: :created, location: @material }
else
format.html { render :new }
format.json { render json: @material.errors, status: :unprocessable_entity }
end
end
end
答案 0 :(得分:3)
@units
动作中nil
个实例变量为create
。在记录验证失败后,您应该像在new
或edit
操作中那样设置它。
答案 1 :(得分:1)
在您的创建方法
中也定义@units