2015-10-30 2 views
1

У меня есть ресурс пользователя, например 100 существующих пользовательских записей.Обновление существующих отношений записей

Каждый пользователь имеет отношение к таблице состояния.

user.rb

has_one :status 

status.rb

belongs_to :user 

Мне нужно создать эту связь не только для новых пользователей, но и для уже существующих.

Как я могу это сделать? Также .. Я пользуюсь рельсами 2.

ответ

1

просто используйте консоль.

User.all.each |user| 
    Status.create(user_id: user.id) 
end 
+0

Спасибо, это похоже на путь, но когда я буду запускать метод с этой логикой, если я не хочу делать это с консоли в prod? –

+1

Существует несколько способов. Вы можете добавить этот код к миграции статуса или создать способ, к которому у вас есть доступ, например: например, представление администратора с кнопкой «добавить статус существующим пользователям». используйте консоль. – miler350

+0

Как мне сделать это из файла миграции? Могу ли я сделать вызов метода из модели после метода up? –

1

сначала нужно произвести миграцию

rails g migration AddUserreferenceToStatus user:references 

и проверить созданный файл миграции, если имя таблицы в порядке, а затем перенести его. и

, то вы можете запустить метод @ miler350 для создания статуса для старых пользователей.