Как предварительно заполнить предыдущий объект в рельсах? - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть эта строка кода

Account.build_address

и это работает, но мне нужно предварительно заполнить его предыдущим адресом, поэтому, если бы у меня были параметры, я мог бы сделать

Account.build_address(params[:address])

Но у меня нет параметров, у меня есть предыдущий адресный объект, поэтому для примера я могу сказать

@previous_address = Address.first
Account.build_address(@previous_address)

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

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Вам не нужно строить, вы можете просто клонировать существующий объект:

@previous_address.clone

, который скопирует все столбцы модели @previous_address, кроме поля id

1 голос
/ 29 февраля 2012

Попробуйте:

@previous_address = Address.first
Address.build_address(@address.attributes)

@address.attributes возвращает хэш атрибутов объекта ActiveRecord ... поэтому, пока build_address ожидает хеш, он должен генерировать объект, эквивалентный адресу, который вы передаете.

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