在狂欢中,我为 :sku 属性添加了唯一性约束
#In spree/models/variant_decorator.rb
Spree::Variant.class_eval do
validate :sku, :uniqueness => true
end
Spree::Admin::ProductsController.class_eval do
# controllers/spree/admin/product_controller_decorator.rb
def update
if params[:product][:collection_ids].present?
params[:product][:collection_ids] = params[:product][:collection_ids].split(',')
end
if params[:product][:taxon_ids].present?
params[:product][:taxon_ids] = params[:product][:taxon_ids].split(',')
end
@product.errors[:name] = "Trying to trigger an error"
@product.errors[:base] = "Trying to trigger an error"
flash[:warning] << "Custom Error"
super
end
end
在 /products/:product_id/edit/ 上,即使正在验证 sku 的唯一性,验证失败时也不会显示错误。如何触发显示验证错误?我试过修改控制器和模型。提前致谢。
我正在使用 Rails 3.2 并运行 Spree 2.0。