2

У меня есть Пользователь модель и пользователей стол. У пользователя может быть много телефонных номеров, поэтому у меня есть отдельная модель с именем Phone. Я использую эту ассоциацию для этого:Скопируйте одну запись в другую на рельсы

Модель

User 
    attr_accessible :id, :name, :screenname,:fullname,:phones_attributes 
    has_many :phones,:dependent => :destroy 

Phone 
    attr_accessible :phone 
    belongs to :users 

Над кодом работает отлично. Администратор хочет скопировать запись любого пользователя в таблицу user_temp и phone_temp (у меня есть отдельные модели с именем UserTemp и PhoneTemp).

Как это сделать?

+0

у вас есть другая модель для user_temp и телефона-ТЕМП –

+0

Да, как я уже упомянул выше. – Gagan

+0

да, оба решения ниже будут работать для вас :) –

ответ

7

Самый простой способ будет:

phone_item = Phone.find(x) # Get the phone item you want to copy 
          # you may have obtained this some other way 

PhoneTemp.create(phone_item.attributes) if phone_item 

Аналогично для пользователя.

+1

Я знаю, что это старый, но вы делаете и создание, и сохранение. Вероятно, вы имели ввиду '.new (...). Save' или просто' .create (...) '. – OzBarry

+1

@OzBarry спасибо, хорошо поймать! – lurker

1

Если у вас есть отдельная модель temp_user, то вы можете так что-то вроде этого

@user = User.find(params[:id]) # find original object 
@temp_user = TempUser.create(@user.attributes) 
Смежные вопросы