2011-08-05 19 views
0

の最大値を取得する:レールは、私がその属性の検証でモデルを持っているvalidates_length_of

validates_length_of :description, :maximum => 1000 

検証は、サーバー側で行われますが、私が使用して、クライアントのサイズはいくつかの制約を追加したいと思いますdescription属性に対応するtextarea入力のjquery制限プラグイン。私はこれを行うことを誓いました。私はjavascript側の:maxium値(1000)を再入力しないようにしたいと思います。 これを得る方法はありますか?maxmiumの値は?それをjsの部分に書きますか?

答えて

2

validatorsプロパティから、特定のActiveModelクラスの検証を行うことができます。バリデータオブジェクトのリストを返します。あなたが興味を持っているのはLengthValidatorです。興味のあるものを選択できる場合は、オプションのハッシュで最大値を利用できます。

require 'active_record' 

class MyModel < ActiveRecord::Base 
    validates_length_of :title, :maximum => 1000 
end 

puts MyModel.validators[0].options # -> {:maximum=>1000} 
+0

MyModel.validators_on(:説明)ここで、粗例である[0] .OPTIONS [:最大] http://stackoverflow.com/questions/6015001/how-to-get-the-maximum -length-active-recordrecord-validationの設定 – Sector

+0

@Sector - より良い答えのように見える – Steve

+1

もっと互換性があります 'MyModel.validators_on(:discription).select {| validator | validator.is_a?(ActiveModel :: Validations :: LengthValidator)}。first.options [:maximum] '。しかしそれはエンジニアリングにもすぎないかもしれません。 – rubish

関連する問題