Ruby on rails 覆盖Rails表单输入字段中的迁移默认值
我有一个产品表,其默认值为minu-quantity为0,max-quantity为max-INT-number99999999。 当我试图显示此表单时,backened的默认值显示在UI中,最小数量为0,最大数量为99999999。 如何在创建操作中将此输入字段保留为空白 schema.rb:Ruby on rails 覆盖Rails表单输入字段中的迁移默认值,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我有一个产品表,其默认值为minu-quantity为0,max-quantity为max-INT-number99999999。 当我试图显示此表单时,backened的默认值显示在UI中,最小数量为0,最大数量为99999999。 如何在创建操作中将此输入字段保留为空白 schema.rb: create_table "products”, id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLL
create_table "products”, id: :integer, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin", force: :cascade do |t|
t.string "name", null: false
t.integer "min_quantity”, default: 0, null: false
t.integer "max_quantity”, default: 999999999, null: false
end
产品/_form.slim:
= simple_form_for([@product]) do |f|
= f.error_notification
.form-inputs
= f.input :name
= f.input :min_quantity, label: 'Minimum Quantity'
= f.input :max_quantity, label: 'Maximum Quantity'
我尝试使用value:nil
作为:
-if f.object.new_record?
= f.input :min_quantity, label: 'Minimum Quantity’, input_html: {value: nil}
-else
= f.input :min_quantity, label: 'Minimum Quantity'
但当出现验证错误时,输入的值将消失。使用jQuery时也存在同样的问题
那么,我如何处理在Rails中重写变黑值的问题呢?请帮助您可以通过在控制器的
新建
方法中将最小数量
和最大数量
设置为零
来获得所需的行为
def new
@product.min_quantity = @product.max_quantity = nil
end
验证失败时显示min\u quantity
和max\u quantity
的值的原因是,它们在@product
对象中设置,因此在重新加载表单时将显示属性的实际值