我想實現一個關鍵的一組特定值的條件更新方法。如何基於Ruby中的選定值驗證更新?
我想只在原始list.permissions值(創建時設置)等於「公共」,「可查看或可編輯」時才允許更新如果記錄的list.permissions值不等於這三個可接受的值,更新記錄被拒絕(鎖定)
我試圖修改控制器文件中的私有方法的強烈PARAMS:
def list_params_validated
params.require(:list).permit(:title, permissions: ["public", "viewable", "editable"])
end
,然後調用,在我的update
方法相同的控制器:
def update
list = List.find(params[:id])
if list.update(list_params_validated)
render json: list
else
render json: { errors: list.errors.full_messages }, status: :unprocessable_entity
end
end
沒有這個運氣,任何幫助將不勝感激!
你爲什麼這樣做?我們可以validate_inclusion_of http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of –
簡單地使用你好。我不確定是否有幫助,因爲創建記錄允許爲該權限密鑰提供多種不同的值。它只是更新我想要允許的預先存在的記錄,完全依賴於該權限密鑰中這三個值中的任何一個的存在。 – dpg5000
請更新您的問題。它不包括'鎖定'權限 –