2016-06-12 105 views
1

我有一个领域模型Product轨领域验证如果

name price product_type_id:integer size:string page_quantity:integer. 

如何可以使Product模式create动作此验证工作?

- if product_type.id == "1" 
    validates :size, presence: true 
    validates :page_quantity, presence:false 
- else 
    validates :size, presence: false 
    validates :page_quantity, presence:true 
end 

回答

2
validates :size, presence: true, if: Proc.new { |p| p.product_type_id == "1" } 
    validates :page_quantity, presence:false, if: Proc.new { |p| p.product_type_id == "1" } 
    validates :size, presence: false, unless: Proc.new { |p| p.product_type_id == "1" } 
    validates :page_quantity, presence:true, unless: Proc.new { |p| p.product_type_id == "1" } 
end 
+0

我想确认是不是'Product.id'但如果'== product_type_id在1'行动Product.create然后 – makerbreaker

+0

相应调整Kkuliks代码! – bkunzi01

+0

@makerbreaker进行了调整,但我认为主要想法应该很清楚。 – Kkulikovskis