Как вы используете attr_accessible? - PullRequest
2 голосов
/ 27 декабря 2010

Я не могу найти учебники для новичков. Нет ли простых правил использования attr_accessible? Стоит ли использовать его для атрибутов, которые пользователи могут устанавливать из форм?

Что, если все атрибуты могут быть установлены из форм?

Буду признателен за ссылку или короткий совет. Я уже нашел http://asciicasts.com/episodes/26-hackers-love-mass-assignment

Ответы [ 2 ]

5 голосов
/ 27 декабря 2010

attr_accessible - это белый список атрибутов, которые могут быть массово назначены модели. Это стратегия, которая говорит, что вам нужно явно перечислить все атрибуты. Таким образом, «открытые порты» хорошо известны и четко перечислены в модели. Это противоположно attr_protected, который является черным списком полей, которые должны быть защищены от массового назначения.

Часто даже в умеренных и простых приложениях есть поля типа внешнего ключа, такие как user_id или company_id, которые не могут быть определены пользовательским вводом. Эти поля должны быть защищены от ввода пользователя. Поле первичного ключа 'id' в любом случае обычно защищено Rails.

Если в вашей модели есть все столбцы, которые могут быть обновлены с помощью ввода формы, то обязательно перечислите их с помощью attr_accessible (или вы можете пропустить attr_accessible для этой конкретной модели).

Не выбрасывайте ребенка с водой, однако, attr_accessible - хорошая вещь и убедитесь, что вы используете его в других моделях, которые могут быть не такими открытыми, как та, о которой вы говорите в своем вопросе.

I обычно использовать attr_protected на моделях с большим количеством столбцов и attr_accessible на большинстве других.

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