У меня есть пользователь, который содержит свои адреса. Теперь у меня есть другая таблица, называемая адресом поиска, которая содержит адрес_поиска поиска.
Это должно быть отношение один к одному, когда пользователь может создать только один адрес поиска в таблице адресов поиска.
Я хочу, чтобы пользователь мог отправить форму и создать в таблице поиска адресов адрес для поиска. После этого я хочу вызвать широту и долготу этого search_address (я использую гем геокодера).
Это код, который у меня есть:
Схема:
create_table "users", force: :cascade do |t|
t.string "address"
t.float "latitude"
t.float "longitude"
end
create_table "search_addresses", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "search_address"
t.float "search_latitude"
t.float "search_longitude"
end
Модель пользователя:
class User < ActiveRecord::Base
geocoded_by :address
after_validation :geocode
end
Поиск модели адреса:
class SearchAddress < ActiveRecord::Base
belongs_to :user
geocoded_by :search_address, :latitude => :search_latitude, :longitude => :search_longitude
end
Мое текущее представление (я основал этот ответ на другом ответе из стека, но он не работает):
<%= semantic_form_for @users do |f| %>
<%= fields_for @user.searchaddresses do |g| %>
<div class="field">
<%= g.label :search_address, 'Search Address' %>
<br/>
<%= g.text_field :search_address, :class => "form-control" %>
</div>
<%= f.submit 'Save Search Address' %>
<% end %>
<% end %>
Кроме того, мой предполагаемый вид будет отображать что-то вроде этого:
<%= @user.searchaddress.latitude %>
<%= @user.searchaddress.longitude %>
Основываясь на этой информации, что мне делать с формой, чтобы пользователь мог добавить в один поисковый адрес, а затем в другом представлении отобразить широту и долготу этого поискового адреса?