2010-07-26 3 views
0

У меня есть кнопка с меткой «save & copy», чтобы сохранить текущий объект (@student) и перенаправить его обратно на новое действие, и эти новые содержат все предыдущие атрибуты объекта. Я застрял, как заполнять предыдущие значения.Клонирование объекта

Является ли ROR любым таким способом, чтобы сделать клон объекта.

+1

Вы пробовали '@ student.clone'? – mckeed

ответ

2

Ruby on Rails предоставляет метод clone, который создает неглубокий клон объекта. В вашем случае, вы можете использовать его так:

@previous_student = @student.clone

Документация метода clone гласит:

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

http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M001848

Как указано в документации, вы должны возможно переопределить метод clone, чтобы реализовать свое собственное клонирование, если вы используете ассоциации в Student модели.

Cheers

Смежные вопросы