Sviluppatore Java per molto tempo, nuovo di zecca - Sto costruendo un'API JSON REST in Rails 4 e ho riscontrato problemi utilizzando parametri forti. Quando eseguo una richiesta POST HTTP a uno dei miei endpoint, vorrei che il mio controller richieda l'oggetto principale, richieda alcuni dei suoi attributi e, se alcuni altri attributi sono presenti, che restituisca anche quelli. Visto che quelli richiedono e consentono metodi restituiscono hash, mi chiedo quale sia la migliore pratica sia per consentire e richiedere determinati attributi dello stesso oggetto. Dovrei forse unire i due hash? Grazie mille per il vostro contributo, poiché ho trascorso un po 'di tempo a lavorare su questo problema.Rails 4 Richiedi e permetti multiplo
risposta
In base alle mie conoscenze, penso che la strada da percorrere sia quella di consentire solo parametri nel controller e quindi eseguire la convalida dell'attributo nel modello anziché direttamente nel controller sui parametri.
Forti parametri sono solo lì per garantire, che una persona malintenzionata non hackerare il tuo modulo utente e inserire qualcosa come "role = admin".
Per quanto ne so, la funzionalità di parametri forti non è progettata con l'intento di richiedere effettivamente alcuni parametri per essere presente diversa dalla singola chiave contenente l'hash di attributi (come il modello chiave chiamato utente o allo stesso modo).
Si può fare di convalida nel modello come questo:
class User < ActiveRecord::Base
validates :email, :first_name, :last_name, presence: true
end
Se si usa qualcosa come simple_form, quindi sarà anche mostrato automaticamente gli errori.
C'è un ragazzo qui, che suggerisce più richieste prima del permesso effettivo. La mia opinione personale è che è molto brutto.
Strong parameters require multiple
def user_params
params.require(:user).require(:first_name)
params.require(:user).require(:last_name)
params.require(:user).permit(:first_name, :last_name)
end
- 1. Oauth multiplo e simultaneo in un'applicazione Rails?
- 2. Rails 4 e ActionCable
- 3. Richiedi ruby gems in rails controller
- 4. Counter_cache multiplo nel modello Rails
- 5. Rails ActiveRecord tavolo multiplo include
- 6. Richiedi istruzione in application.css.scss
- 7. File di instradamento multiplo in Rails 3
- 8. Modulo Rails 4 senza modello e database
- 9. Rails 4: accept_nested_attributes_for e assegnazione di massa
- 10. Opencv multiplo scalare e matrice
- 11. Rails 4 problema force_ssl?
- 12. Rails 4: Scadenza sessione?
- 13. Rails 4 ambito predefinito
- 14. Rails 4 assets.precompile
- 15. Rails 4 - will_paginate
- 16. ActiveModel :: ForbiddenAttributesError - Rails 4
- 17. Ruby on Rails 4 selezionare più
- 18. Fondazione 4 | Rotaie | Passeggero - CSS non valido dopo "*": atteso "{", era "= richiedi trovato ..."
- 19. Rails 4 equivalenti di Rails 3 'Model.all'
- 20. Aggiornamento da Rails 3.2 a Rails 4
- 21. Laravel -> where ('id', ARRAY). multiplo dove condizioni laravel 4
- 22. Rails 4 asset digest digest
- 23. Sendgrid impostato su Rails 4
- 24. Mysterious EOFError in Rails 4
- 25. Simple Form - Rails 4 - editing
- 26. Rails 4: fields_for in fields_for
- 27. Rails 4 scope con argomento
- 28. Google Polymer with rails 4
- 29. parametrizzate unirsi in Rails 4
- 30. EOF errore javascript_include_tag Rails 4
Grazie tu- proprio quello che stavo cercando! – svarlamov