Местоположение геокодера аутсорсинга при написании статуса на основе местоположения

В настоящее время я могу написать статус в своем приложении, которое сохраняет выбранное местоположение пользователя (html5 javascript -> geocoder) прямо в базе данных статуса при написании нового статуса. Теперь я хочу передать местоположение в новую модель и связать его с моей моделью статуса. Что-то вроде модели статуса: Content, Location_id... Модель местоположения: Lat, Lng, Address. Моя проблема - форма для сохранения статуса. Я буду использовать две формы в одной. Один для статуса, а другой для сохранения местоположения. Как связать правильный location_id с этим конкретным статусом? Потому что location_id генерируется только ПОСЛЕ сохранения всего статуса. Любые идеи? Может быть, что-то асинхронное? Я действительно понятия не имею, как решить эту проблему. Я был бы очень признателен за вашу помощь :) С Новым годом всех вас: D


person user3079933    schedule 07.01.2014    source источник
comment
Итак, ваша проблема состоит в том, чтобы создать запись модели местоположения, которая принадлежит модели статуса, сразу после создания записи статуса?   -  person Jean-Théo    schedule 07.01.2014
comment
Это истинное местоположение и модель статуса должны быть созданы одновременно, если модель статуса еще не существует. Или, может быть, создать модель местоположения при загрузке страницы со ссылкой на статус, когда она будет создана, было бы лучшим решением?   -  person user3079933    schedule 07.01.2014


Ответы (1)


В вашем контроллере состояния:

class StatusController < ApplicationController

  [..]

  def create
    @status = Status.new(params[:status])
    @location = Location.new(whatever parameters you want : nested params, or anything else)
    status = @status.save
    if status && @location.save
       redirect_to @status, notice: 'Sucessfully created.'
    elsif status
       @status.destroy
       redirect_to new_status_path, alert: 'Something went wrong with your location.'
    else
       redirect_to new_status_path, alert: 'Something went wrong'
    end

  end

  [..]

end
person Jean-Théo    schedule 07.01.2014