Как получить ar_fixtures для загрузки защищенных атрибутов? - PullRequest
0 голосов
/ 23 октября 2009

Я использую ar_fixtures для заполнения данных в проекте rails (процедура была написана до прибытия семян в 2.3.4)

Все работает нормально, за исключением того, что я обнаружил, что один столбец не заполняется (user_id). user_id устанавливается в файле yaml, например:

- !ruby/object:Service 
  attributes: 
    name: name
    updated_at: 2009-10-14 11:50:36
    provider_id: "1"
    id: "1"
    description: ""
    user_id: "1"
    created_at: 2009-10-14 11:47:01
  attributes_cache: {}

Но даже несмотря на то, что связанный объект пользователя существует при выполнении импорта (Service.load_from_file), user_id равен nil после импорта. Другие внешние ключи (например, provider_id в приведенном выше примере) загружены правильно.

Я подозреваю, что это потому, что user_id защищен в модели, и это блокируется во время массового назначения.

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

1 Ответ

2 голосов
/ 23 октября 2009

Исправлена! Отвечая на мой вопрос ..

Просто требует настройки параметра attr_protected / attr_accessible перед загрузкой. например,

Service.attr_protected.delete "user_id"
Service.load_from_file

Или, если ограничение основано на attr_accessible:

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