Как сделать все атрибуты модели доступными для массового назначения? - PullRequest
15 голосов
/ 22 января 2012

Я сделал все атрибуты в приложении rails недоступными с помощью этого параметра конфигурации приложения:

config.active_record.whitelist_attributes = true

В большинстве случаев я определяю несколько атрибутов, которые я хочу сделать доступными, используя attr_accessible в моделях,Как сделать все атрибуты конкретной модели доступными.Что-то вроде attr_accessible :all.

Ответы [ 2 ]

29 голосов
/ 22 января 2012

Вы можете сделать все атрибуты доступными, вызвав attr_protected без таких аргументов:

class User < ActiveRecord::Base
  # roughly speaking sets list of model protected attributes to []
  # making all attributes accessible while mass-assignment
  attr_protected
end
13 голосов
/ 10 апреля 2013

Я нашел этот подход более читабельным:

class User < ActiveRecord::Base
  attr_accessible *column_names
end

Изменение config.active_record.whitelist_attributes затронет все ваши модели, тогда как это будет применяться только к одной модели.

Способ attr_protected также работает, но я нахожу его непонятным (поскольку он делает противоположное тому, что кажется на первый взгляд).

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