2016-02-22 49 views
1

我目前正在設計和實施RoR API。字符串的未定義方法許可

我正面臨一個有關強參數的問題。

我期待收到以下屬性:如果分析數據是零或

params.require(:analysis_data).permit(:barcode) 

這非常適用:

{ analysis_data: { barcode: "some_string" } } 

爲了確保這一點,我只需使用要求/許可證組合散列。

然而,如果客戶端提交一個請求,其中analysis_data是一個字符串,而不是一個散列值,該請求返回錯誤500

例如:

{ analysis_data: "some_string" } 

產生下列500錯誤:

NoMethodError (undefined method `permit' for "barcode":String): 

是否有任何clean解決方法?

回答

1

嘗試這樣

params.fetch(:analysis_data, {}).permit(:barcode) 
+0

認爲這會解決問題,當我第一次閱讀它今天上午。但我已經嘗試過,經過測試,它不起作用。它仍然提取字符串並嘗試對該字符串調用permit。 –

0

不知道,如果你希望允許串和散或防止串不會引發錯誤。如果是前者,只要它位於analysis_data中,就可以使用params.require(:analysis_data).permit!來允許任何值。

+0

不,這是關於第二個:防止字符串拋出異常。 –

相關問題