1

カテゴリとその他の属性を持つオブジェクト Product があります。カテゴリごとに異なる属性が必要です。required_attributes の配列としてのすべての属性。これをどのように実装すればよいですか?私はこのようなことを試しました:

validates_presence_of lambda { *self.category.required_properties }

私もこれを試しました:

def validate(record)
    if record.category == nil
       record.errors[:category] << "Has no Category"
    else
       recors.category.required_properties.each do |x|
        .........?????  
       end
    end
end

これを行う最もクリーンな方法は何ですか?ありがとう

4

2 に答える 2

0

現在のカテゴリのリストに含まれているかどうかを確認する、各属性の条件付き検証を設定できます。

[:attribute1, :attribute2, :attribute3].each do |attribute|
  validates attribute, :presence => true,
    :if => Proc.new { |product| product.category.required_properties.include?(attribute) }
end
于 2012-12-25T06:44:32.943 に答える
0

これを試して:

validates :name, :presence => true

また

validates :name, :presence => {:message => 'Name cannot be blank, Task not saved'}

if record.category.present?を使用して確認できます。

def validate(record)
  if record.category.present?
      record.category.required_properties.each do |x|
       .........?????  
      end
  else
      record.errors[:category] << "Has no Category"
  end
end
于 2012-12-24T19:58:45.440 に答える