Ruby on rails - вложенные атрибуты: как найти или создать вложенную модель - PullRequest
6 голосов
/ 06 января 2010

У меня есть Bill модель с вложенной Customer моделью. Модель Customer имеет номер телефона с подтверждением уникальности. При создании счета я хочу получить существующую запись по номеру телефона или создать новую, если таковой не существует. Как мне это сделать RESTful?

Ответы [ 4 ]

2 голосов
/ 06 января 2010

вы бы использовали метод find_or_create_by, который бы выглядел примерно так в вашем случае:

fetchedRecord = Bill.find_or_create_by_phone_number(customer.phone_number)
0 голосов
/ 09 апреля 2011

Я помещаю мой в обратный вызов ассоциации before_add

0 голосов
/ 25 февраля 2010

Не похоже, что вы отвечаете на эти ответы.

Забудьте о Rails, мой вопрос будет таким: каков RESTful способ создать ресурс, который уже может существовать? Стоит ли отправлять POST на URL-адрес (список) ресурсов, а затем ожидать код состояния HTTP 201, если ресурс был создан, и 200, если он уже существует?

Похоже, это должно быть где-то прописано в стандарте.

Кстати, вот как я с этим справляюсь - с кодами состояния.

0 голосов
/ 06 января 2010

Вы можете посмотреть методы find_or_create или find_or_create_by (которые создаются динамически). Думаю, немного погуглить до конца.

...