Белые иностранные ключи - PullRequest
0 голосов
/ 26 марта 2012

Как люди обычно обрабатывают белый список значений внешнего ключа? Давайте проигнорируем вариант использования связанной user записи, которая приносит дополнительный набор проблем, и придерживаемся довольно мягкого сценария: A Task принадлежит Project. Когда я создаю задачу, я хочу создать ее со значением project_id, но я не хочу, чтобы это значение было редактируемым. Свойство передается скрытым полем в общей форме.

Я знаю, что мог бы просто сбросить это свойство в контроллере перед вызовом save() в действии редактирования, но мне было интересно, есть ли у кого-нибудь лучшее решение. Я использовал / попробовал несколько, но все они трудоемки или менее универсальны, чем хотелось бы.

У кого-нибудь есть решение, которое им действительно нравится для решения этой конкретной проблемы?

Спасибо.

1 Ответ

0 голосов
/ 26 марта 2012

Я справляюсь и с этим вручную.Процесс выглядит примерно так:

  1. Загрузить объект и показать экран редактирования пользователю.
  2. Когда пользователь отправит запрос, возьмите основной идентификатор и загрузите объект снова.Проверьте владение.
  3. Создайте белый список редактируемых пользователем полей, прокрутите эти ключи и заполните новый объект, оставив все остальное в покое.
  4. Сохранить.

Вы можете переместить это в какой-то вид, прежде чем сохранить ловушку или поведение, я бы сказал.Но это, похоже, лучшая практика с функцией RoR (мы все знаем, что произошло в GitHub)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...