У меня есть 2 модели для клиента и одна для поставщика, я пытаюсь сделать сайт, который, когда клиент будет входить, они могут искать, используя свои ip-адрес и поиск ближайшего местоположения, результатом будет некоторый поставщик с близлежащим адресом. До сих пор я планирую использовать геокодер и gmap4rails gem. Я все еще не уверен, как сохранить адрес поставщика с помощью геокодера, чтобы при поиске клиента был представлен правильный результат. Может ли кто-нибудь дать предложение о том, как создать эту функцию?использовать geocoder gem для хранения адреса одного модельного поиска с адресом другой модели
ответ
Поскольку вы просто ищете «дизайн», а не код, я могу только наметить широкие шаги: форма
ф представленные =>
поиска геоданных для местного бизнеса =>
магазин геоданных в Модель «vendor» =>
Единственный нестандартный рельс - это гео-поиск.
Существует несколько способов сделать это, безусловно, используя какой-то внешний API. Я не думаю, что у этих драгоценностей есть geocoder
или gmap4rails
.
Хотя вы, вероятно, используете gmap4rails
для своего слоя просмотра, я не уверен, что вам понадобится драгоценный камень geocoder
, если вы используете другой сервис для поиска поставщиков. Эта внешняя служба может выполнить одно и то же.
Что касается использования внешних сервисов: я бы посмотрел на Yelp или один из API Google.
В ответ на ваш комментарий:
Когда пользователь входит в систему, вы, вероятно, захотите установить session
печенье для них.
Нет причин, по которым ip-форма «принадлежит» любому пользователю. Когда форма будет отправлена, вы сможете просмотреть текущий подписанный пользователь из действия контроллера, который попадает при отправке формы.
Если вы храните данные поставщика в своей базе данных, вы можете представить данные в представлении.
Если эти понятия новы для вас, я бы рекомендовал пройти подробный учебник по Rails.
Таким образом, форма ip принадлежит учетной записи клиента, и когда клиент регистрируется, он/она может искать список поставщиков по адресу? – KhoaVo
@KhoaVo Я ответил на ваш комментарий с помощью редактирования. –
@KhoaVo благодарит за принятие моего ответа, но нет необходимости делать это так скоро после публикации. Вы можете получить больше ответов, если вы оставите его непринятым на некоторое время. –
Можете ли вы показать, что вы пробовали? –
Я ничего не пытаюсь на самом деле, так что до сих пор я могу только подписать клиента и поставщика и обновить информацию об учетной записи, я не уверен, какой шаг я должен сделать дальше, чтобы настроить функцию, упомянутую выше. Мне просто нужен какой-то общий дизайн для этой функции. – KhoaVo