2013-08-25 9 views

Odpowiedz

140

Kontroler params wygląda jak skrót, ale w rzeczywistości jest to instancja ActionController::Parameters, która udostępnia kilka metod, takich jak require i permit.

Metoda zapewnia, że ​​określony parametr jest obecny, a jeśli nie zostanie podany, metoda require zgłosi błąd. Zwraca instancję ActionController::Parameters dla klucza przekazanego do require.

Metoda zwraca kopię obiektu parametrów, zwracając tylko dozwolone klucze i wartości. Podczas tworzenia nowego modelu ActiveRecord tylko dozwolone atrybuty są przekazywane do modelu.

Wygląda bardzo podobnie do białej listy, która była wcześniej uwzględniona w modelach ActiveRecord, ale ma sens, aby znajdował się w kontrolerze.

+24

Opis zezwolenia jest nieco wyłączony: zezwolenie zwraca inny skrót, który zawiera tylko dozwolony klucz ORAZ (jest to krytyczne) odpowie "prawda" na metodę "dozwolone?". Domyślnie instancja klasy 'ActionController :: Parameters' zwróci' false' dla 'dozwolonego?' Odpowiadając 'prawda' na' dozwolone? 'Oznacza, że ​​obiekt parametru może być użyty w przypisaniu masy; w przeciwnym razie aplikacja rzuci błąd ForbiddenAttributes. – sameers

+0

Czy łańcuch "allow" na 'require' również pozwala i zawiera wymagane parametry w zwróconym obiekcie? – Dennis