Ruby on Rails - 模型验证

时间:2015-04-23 06:50:02

标签: ruby-on-rails

我的简单模型验证存在问题。 输入没有SKU的材料会给我带来错误信息:

  材料#中的NoMethodError创建未定义的方法`empty?'对于   零:NilClass

enter image description here 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

2 个答案:

答案 0 :(得分:3)

@units动作中nil个实例变量为create。在记录验证失败后,您应该像在newedit操作中那样设置它。

答案 1 :(得分:1)

在您的创建方法

中也定义@units