0

私は自分のモデルでこれを持っています。
しかし、モデルはポリモーフィックとして使用されており、別の条件が必要です。
コントローラーでこれを行う場合、どのようにコードを実行できますか?

モデル/コメント.rb

validates_length_of :body, 
                    :within => 10..100, 
                    :message => "must be between 10 to 100 characters"

アップデート:

コミュニティ モデルがコメント モデルにコメントを作成する場合にのみ、この検証条件を使用したいと考えています。コメントモデルは多態的です!commentable_type と commentable_id があります

4

3 に答える 3

4

いいえ、コントローラーでこのようなことはできません。モデルで条件を使用するか、これをコミュニティ モデルに入れます。

validates_length_of :body, 
                    :within => 10..100, 
                    :message => "must be between 10 to 100 characters", :if => "community?"

  def community?
    return self.commentable_type == "Community"
  end
于 2013-01-25T06:30:38.697 に答える
0

あなたのモデルでは、

validates_length_of :body,
                    :when => [ :comment ],
                    :within => 10..100, 
                    :message => "must be between 10 to 100 characters"

:unlessそして、あなたは(:unless => Community.new { |a| a.comment? })のように使うことができます

このリンクは、必要に応じて理解し、編集するのに役立ちます。これはideaあなたの問題を解決するためのものです。

于 2013-01-25T09:38:36.040 に答える
0

モデルでこれを行う必要があります

于 2013-01-25T06:32:31.470 に答える