1) Предмет может иметь много мест? Мне кажется, что он должен быть только один, поэтому измените hasy_many
на has_one
. Если вы действительно не хотели иметь несколько местоположений, вам нужно изменить item_location
, чтобы выбрать одно местоположение из списка, который у вас есть.
2 & 3) Если вы отправляете свои данные через форму, item_location устанавливается методом item_location=
. Который должен (как-то) хранить информацию об элементе. В вашем случае он хранит координаты, возвращенные из переменной geo
. Вы должны вызвать некоторую ошибку, когда geo.success
имеет значение false, чтобы уведомить пользователя о том, что значение не было сохранено. Если вы специально хотите проверить значение, отправленное в установщик, вам нужно сохранить его в классе: @saved_location = str
и использовать @saved_location
для проверки вместо item_location.
1 & 3) Как правило, практика, когда сеттер и геттер используют одни и те же данные (структуру). В вашем случае вы сохраняете координаты положения в сеттере, но возвращаете адрес, город и страну. Таким образом, сеттер и геттер кажутся несовместимыми.
Надеюсь, эти замечания помогут!