2012-07-25 40 views
0

我有一个名为price,price_per_unit,unit和unit_amount的4个属性的产品模型。我想要允许价格属性填充或其他3个字段,但不是全部4个字段。这里有一个更好的视野:如何只允许填写一个或其他字段,但不能同时填写?

class Product < ActiveRecord::Base 
    attr_accessible :price, :price_per_unit, :unit, :unit_amount 
end 


<%= form_for(@product) do |f| %> 
# Either give a regular price or.... 
<%= f.text_field :price %> 

# a price per unit the requires all 3 of these fields. 
<%= f.text_field :price_per_unit %> 
<%= f.text_field :unit %> 
<%= f.text_field :unit_amount %> 

<%= f.submit %> 
<% end %> 

所以在数据库(或网站),如果我看一个产品的或者由单位的基础上或有一个普通的价格,但不能兼得。

我该怎么做呢?

回答

2

我会说,主要取决于你想如何在用户界面的行为 在任何情况下,你应该有两个部分组成:

  • 在模型验证,确保所描述的限制
  • 用户界面,允许用户只输入任一选项,例如。使用javascript进行选择。