Создание 'id' attr_accessible / mass-assignable (и всех других атрибутов) - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь импортировать существующие данные в мою базу данных, которая уже имеет значения id.Тем не менее, AR не позволит мне массово назначить id с.

Я могу

class User
  attr_accessible :id

Но тогда все остальные атрибуты - нет.Я также пытался

class User
  attr_protected #none

Безрезультатно.Как мне сделать id массово-присваиваемым?

** Я хочу, чтобы мой столбец был назван id.Мне не нужны два набора идентификаторов для одних и тех же данных.

Ответы [ 3 ]

0 голосов
/ 10 февраля 2012

По соображениям безопасности я бы предложил НЕ делать id как attribute_accessible.Вы можете попробовать следующее,

user = User.find_or_create_by_id("100")
user.update_attributes({:artists_name => "jake", :age => 10})
0 голосов
/ 06 августа 2012

Это может быть неприятно, в зависимости от того, сколько у вас атрибутов, но я думаю, вам нужно явно установить все атрибуты на attr_accessible

, т. Е.

class User
  attr_accessible :id, :name # etc.
0 голосов
/ 10 февраля 2012

ActiveRecord не позволит вам установить идентификаторы для записей, потому что идентификатор является первичным ключом.

Вы можете использовать taps gem для импорта / экспорта данных. Он очень прост в использовании и был создан именно для этих целей.

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