Я создаю приложение Rails 3.1, которое позволяет людям отправлять события. Одним из полей для мероприятия является место проведения. В форме создания / редактирования поле venue_name имеет функцию автозаполнения, поэтому оно отображает места с похожим именем, но пользователь может ввести любое имя.
Когда форма отправлена, я использую find_or_create_by_name при присоединении места к модели события.
Я делаю это, потому что мы не можем вести полный список мест, и я не хочу запрещать людям отправлять мероприятия, потому что место не в списке.
Проблема в том, что вполне вероятно, что со временем мы получим дубликаты, такие как «Название места проведения» и «Название места проведения» или любое количество других возможностей.
Я подумал, что мне, вероятно, просто нужно создать административный инструмент, который позволит администратору просматривать последние места, и если он / она думает, что они дубликаты, искать / выбирать основную запись и копировать ассоциацию дубликатов записи основной записи и после успешного удаления дубликата записи.
Это хороший подход? С точки зрения манипулирования данными было бы лучше всего обрабатывать это в транзакции? Было бы лучше добавить эту функциональность в своего рода служебный класс - или непосредственно в модель Venue?
Спасибо за ваше время.