Как канонический способ Rails собирать и хранить физические или почтовые адреса? - PullRequest
7 голосов
/ 20 октября 2010

Мне нужно собирать и хранить почтовые адреса в приложении Rails (2.3). Есть ли способ Rails сделать почтовые адреса? Например, я бы сделал f.date_select, чтобы сгенерировать серию выпадающих списков для обработки дат, которые затем сохраняются в базе данных, которую я определил в схеме и миграциях как t.datetime "foo". Я бы посчитал, что канонический Rails способ обрабатывать даты, и мне любопытно, есть ли аналог для физических адресов, почтовых индексов и т. Д.

Ответы [ 3 ]

7 голосов
/ 20 октября 2010

Для этого не существует установленной системы или помощника, потому что в отличие от средства выбора даты, которое является более сложным, чем кажется, сбор информации об адресе довольно прост.Однако, если вам нужно собрать адресную информацию в вашем приложении и присоединить ее к нескольким объектам, вы можете использовать комбинацию полиморфных ассоциаций, вложенных атрибутов и общего представления.

Я приведу простой пример иПолное объяснение в моем блоге здесь:

http://kconrails.com/2010/10/19/common-addresses-using-polymorphism-and-nested-attributes-in-rails/

Поначалу это может показаться пугающим, но на самом деле все очень просто.Преимущество заключается в том, что ваши адреса одинаковы во всех представлениях вашего приложения.И каждый объект с адресом имеет точно такую ​​же настройку, даже когда вы меняете адреса в будущем.

Я думаю, что это в конечном итоге то, что вы искали.Надеюсь, это поможет!

2 голосов
/ 15 июня 2017

Я начал изучать это - адреса не являются прямыми на международном уровне. Пока я нашел пару драгоценных камней:

Даже если вы в конечном итоге не используете ни один из этих драгоценных камней, возможно, стоит посмотреть, как они хранят разные части адреса. Общее мнение заключается в том, чтобы иметь полиморфную таблицу адресов, но есть несколько вариантов того, какие столбцы вам нужны.

В этой статье приводятся некоторые примеры того, как вы можете обрабатывать форму, чтобы она была настолько специфичной или обобщенной, насколько вам нужно в разных странах, и упоминает некоторые несоответствия, с которыми вы можете столкнуться в разных регионах (даже в пределах данной страны): http://www.uxmatters.com/mt/archives/2008/06/international-address-fields-in-web-forms.php

Например, вы не хотите, чтобы почтовый индекс был обязательным для заполнения, поскольку не во всех странах оно есть. В зависимости от того, насколько сложным вы хотите пройти, вы можете сначала спросить страну и иметь разные формы в зависимости от ответа на этот вопрос. Есть хороший пост в блоге о том, как избежать двусмысленности, особенно в отношении полей адресной строки1 и адресной строки2: https://baymard.com/blog/address-line-2

2 голосов
/ 20 октября 2010

Нет.Адреса, почтовые индексы и т. Д. Просто считаются строками / целыми числами.Нет конкретного типа базы данных для сопоставления с этими элементами и специальных классов для этих элементов.

Я также не знаком ни с какой поддержкой ActiveSupport (используемой библиотекой b Rails) для почтовых адресов, но могубудьте здесь не правы.

Возможно, если вы ищете драгоценные камни, вы можете найти тот, который облегчает работу с этими предметами.

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