2016-10-13 5 views
0

rails 4 APIのコントローラアクションで入力パラメータを検証する方法はありますか?apiコントローラのポストパラメータを検証する

私はパラメータをホワイトリストできるとは知っていますが、必要な値を提供しているかどうか確認したい場合はどうすればよいですか?

モデルの検証は行われず、コントローラーのPOST JSONを検証する必要があると仮定してください。

例として、create PersonサンプルのJSONを使用できます。

{ 
    "person": { 
    "firstname": "Joe", 
    "lastname": "Bloggs", 
    "age": "99", 
    "starsign": "virgo", 
    "address": { 
     "line1": "123 street", 
     "city": "NYC", 
     "zip": "90210" 
    } 
    } 
} 

は(ECT numericalityの存在だけをチェックし忘れる)彼らは値を持っていたチェックするための最良の方法をどのようになるか、すべてのこれらのフィールドが必要だったとしましょう。また、1つ以上が見つからない場合は、エラーメッセージを返します。

私は、モデルの検証は、私はこのような人を作成していた場合は、これを行うための最善の方法だろう知っている:

Person.new(params) 

が、私は実際に私が値をチェックする別の方法が必要であることをやっていないのです!あなたは、コントローラのアクションにどうなるのか

答えて

0

は、人物のparamが供給されていない場合、これは、エラーをスローしますあなたは、おそらくそのエラーをキャッチしなければならないし、所望の動作を、プリフォーム

params.require(:person).require(:firstname, :lastname) 

ような何かを書くとなりますperson paramが供給されなかったことの通知をユーザーに含める必要があります。

+0

私はこれが可能であるかどうか分かりませんでしたが、私はそれがどのように動作するかを確認して確認します.. – user3437721

+0

そう、先日、これを使用してレールAPIのエンドポイントを検証しました –

+0

これはあなたのために働きましたか? –

関連する問題