Я создал некоторые встроенные функции редактирования с использованием AJAX, которые позволяют пользователю обновлять множество небольших фрагментов информации на странице, а затем создают JS для обновления страницы. Эта же логика должна обрабатывать десятки различных мини-форм, содержащих разные атрибуты или наборы атрибутов (таких как имя и фамилия). В большинстве случаев изменяемое значение совпадает со значением для обновления на странице, поэтому легко написать вызов Jquery для соответствующего обновления содержимого. Однако иногда я хочу переопределить то, что будет обновлено: например, когда пользователь меняет свой почтовый индекс, впоследствии также должны отображаться его город и штат.
В этих случаях я могу добавить элемент формы, чтобы указать, какие поля должны быть обновлены на странице. Но логика контроллера усложняется, когда я думаю о безопасности. Я не хочу, чтобы пользователь мог изменить этот элемент формы для отображения любого из своих атрибутов; скорее, я хотел бы проверить, находится ли данный атрибут в белом списке атрибутов, которые они могут обновлять (стиль сильных параметров), а затем использовать эту информацию, чтобы решить, разрешает ли контроллер отображать этот атрибут на странице.
Настройка сильных параметров, похоже, не позволяет этого. Я могу проверить, присутствует ли параметр в user_params, но если я на самом деле не отправляю новое значение для этого атрибута через хэш params, он считается отсутствующим в user_params.
Есть ли способ проверить, находится ли атрибут «в белом списке», т.е. будет принят в user_params, даже если мы не пытаемся его изменить?
Или, в качестве альтернативы, есть ли другой способ удовлетворить эту потребность?