1

私のプロジェクトには2つのモデルがTreatmentあり、次のCategoryとおりです。

 class Category < ActiveRecord::Base
   attr_accessible :typ
   has_many :treatments
 end  

 class Treatment < ActiveRecord::Base
   belongs_to :patient
   belongs_to :category
   attr_accessible :content, :day, :typ, :category_typ
 end

したがって、私の治療フォームでは、ユーザーはカテゴリ (約 4 つのカテゴリ) を選択することもできます。

<div class="field">
  <%= f.label :category_id %><br />
  <%= f.collection_select :category_id, Category.find(:all), :id, :typ %>
</div>

私の質問は、Treatmentモデルの検証をフォームで選択したカテゴリに依存させることはできますか? そしてどうやって?

4

2 に答える 2

2

has_many :treatmentsin Category およびbelongs_to :categoryin Treatment は、Treatment が持つことができるカテゴリは 1 つだけであることを意味します。

更新のみを検証する必要があります (新規および更新の作成)。次のように sth を書くことができます。

before_save :validate_based_on_category

メソッドでカスタム検証を実装します。

private
  def validate_based_on_category
    #your validation
  end

プライベートメソッドとして持つのもいい

于 2013-06-16T18:42:12.527 に答える