Vorrei usare qualcosa di simile:Come consentire tutti gli attributi oltre a user_id utilizzando strong_parameters?
def answer_params
params.require(:answer).permit!.without(:user_id)
end
Vorrei usare qualcosa di simile:Come consentire tutti gli attributi oltre a user_id utilizzando strong_parameters?
def answer_params
params.require(:answer).permit!.without(:user_id)
end
questo lavoro?
params.require(:answer).permit!.except(:user_id)
Voglio solo mettere questo qui, whitelisting non è ASCIUTTO. Immagina un'API JSON per una voce basata su documenti che potrebbe contenere fino a 100 (o più) attributi (coppie chiave-valore). Generalmente gli unici elementi di cui ti devi preoccupare sono gli attributi che possono incrementare i privilegi come user_id.
È sufficiente isolare la whitelisting dal controller e riutilizzarla in più classi. Questo risolverebbe il problema. – IvRRimUm
Nonostante la soluzione sia corretta, è importante tenere a mente (per quanto riguarda la domanda originale) che si tratta di una soluzione pericolosa. È necessario utilizzare un approccio di whitelist quando si gestiscono attributi consentiti, non blacklist. –
@SimoneCarletti ci sono numerose circostanze in cui un approccio alla lista bianca è davvero eccessivo e la lista nera non è assolutamente pericolosa. Non tutti i modelli rappresentano una significativa minaccia per la sicurezza. La minaccia deve essere valutata caso per caso. –