Estoy usando la Gema Devise, para un proyecto Rails el cual le permite a
un usuario registrado gestionar tiendas.
tengo un controlador location_controller.rb el cual debe mostrarme (en
formato json) las tiendas correspondiente al usuario que esta logueado
en ese momento, es decir si yo me registro y me logueo, el sistema debe
mostrarme las tiendas que yo he agregado en la BD.
el controlador contiene lo siguiente:
Código Ruby:
Ver originalclass Account::LocationController < ApplicationController
def index
@account = Account.find(current_account)
render :json => { :locations => @account.locations }
end
def create
@location = Location.new(params[:location])
if (@location.save)
render :json => { :success => true }
else
render :json => { :success => false }
end
end
def update
@location = Location.find(params[:id])
if (@location.update_attributes(params[:location]))
render :json => { :success => true }
else
render :json => { :success => false }
end
end
end
Cuando me logueo con mi usuario de prueba, el sistema me muestra mis
tiendas correspondiente sin problemas, pero el problema viene es cuando
intento agregar una tienda nueva o edito la información de una tienda
que ya esta en la base de datos.
el error que me muestra en la terminal es
http://c2.jam.net.ve/qvltvD
segun el error "no se puede encontrar account sin un ID" pero lo curioso
es que esto solo pasa al intentar editar o agregar una cuenta nueva,
luego de este error, si yo cierro session y vuelvo a loguearme se me
muestra sin problemas mis tiendas, y si le hice cambio a la informacion
de una tienda, se me muestra sin problemas.
por lo que veo tal vez el metodo index (el que muestra las tiendas
correspondiente a un usuario logueado en ese momento) no esta
funcionando del todo bien.
le pregunto a ustedes, si ya han trabajado con Devise hay alguna mejor
forma de realizar esta misma consulta sin que tenga errores????
conocen algun proyecto que haga algo similar que pueda revisar???
de antemano les comento que ya revise la wiki de Devise en su repo
github.com
Saludos.