2016-10-13 24 views
0

是否有推薦的方法來驗證rails 4 API的控制器操作中的任何輸入參數?在api控制器中驗證後參數

我知道我可以將白名單參數,但如果我想檢查他們是否提供了所需的值,該怎麼辦?

請假定不會有模型驗證,我必須驗證控制器中的POST JSON。

作爲一個例子,我們使用一個創建Person示例JSON。

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

比方說要求所有這些領域,這將是檢查他們有一個價值的最佳方法(忘了檢查numericality ECT,只是存在)。如果缺少一個或多個,也會返回錯誤消息。

我知道一個模型驗證會做到這一點的最好辦法,如果我創建一個人是這樣的:

Person.new(params) 

但我其實並沒有這樣做,所以我需要另一種方式來檢查的值!

回答

0

你會在控制器的動作做的是寫類似

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

這將拋出一個錯誤,如果沒有供應的人PARAM,那麼你或許應該趕上這個錯誤和預製品所期望的行爲,應該包括通知用戶該人員參數未被提供。

+0

我不知道這是可能的,我會檢查並看看它是如何工作的。 – user3437721

+0

是啊我前一天使用這個來驗證軌API的端點 –

+0

這是否最終爲您工作? –