2017-12-21 7 views
0

私たちは、入力を検証するための改革宝石の使用を検討しています。トレイルブレイザー改革宝石、このタイプの入力検証をどのように処理するのですか?

我々が直面している問題の一つは、我々はこの形式で入力を受け付けていることである:

params = { 
    records: { 
    "record-id-23423424": { 
     name:  'Joe Smith' 
    } 
    "record-id-43234233": { 
     name:  'Jane Doe' 
    } 
    "record-id-345234555": { 
     name:  'Fox trot' 
    } 
    "record-id-34234234": { 
     name:  'Alex' 
    } 
    } 
} 

ので、我々はの内容を検証するにはどうすればよいの改革クラス

class RecordForm < Reform::Form 
    property :records 
    validates :records, presence: true 

    # ????????? 
end 

を作成した場合それぞれに名前が付いていることを確認するためのレコード? record-id-valuesは、事前にはわかっていません。

+1

現在のスキーマに慣れていませんか?スキーマが '{records:[{id:" record-id-23423424 "、name: 'Joe Smith'}、...}のようなものであれば、 –

答えて

0

改革は現在、動的プロパティを許可しておらず、実際にはReformはUI固有のフォームオブジェクトであると考えられているため、実際には計画されていません。

解決策は、入力を何かに事前に解析することですwhat Laura suggests。各フィールドにネストされたプロパティを設定できます。

collection :records do 
    property :id # manually parsed 
    property :name 
end 
関連する問題