如何只允许填写一个或其他字段,但不能同时填写两个字段?

时间:2012-07-25 10:51:35

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我的产品型号有4个属性,分别是price,price_per_unit,unit和unit_amount。我想允许填写price属性或其他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 %>

所以在数据库(或网站)中,如果我以单位为单位查看产品,或者具有正常价格,但不能同时使用这两种产品。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:2)

我想说这主要取决于您希望用户界面的行为方式 无论如何,你应该有两个部分:

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