O Devise + Rails 3.0.4 termina a sessão após a solicitação do AJAX
Eu tenho uma ação acionada por uma solicitação AJAX gerada porAjax.InPlaceEditor
ouInPlaceCollectionEditor
como isso:
new Ajax.InPlaceCollectionEditor('agent_email', 'inspections/<%= @inspection.id %>/update_field',
{
collection: [<% @agents.each do |agent| %>
'<%= agent.email %>',
<% end %>],
okText: 'Update',
cancelText: 'Never mind',
savingText: 'Updating...'
});
No outro extremo, a ação contém o seguinte:
def update_field
--some code here--
if success
puts "stored change"
render :text => result
else
puts "did note change store"
render :text => inspection.errors.to_json, :status => 500
end
end
Quando qualquer um dos métodos de renderização é atingido, a sessão expira e, da próxima vez que o usuário enviar uma solicitação, o Devise os enviará para o logon na página.
Mesmo que eu esteja isentando update_field da autenticação (before_filter :authenticate_user!, :except => :update_field
), a sessão ainda está sendo redefinida.
Eu olhei para a resposta em uma pergunta muito semelhante emPlanejar sessão expirando imediatamente na chamada .js [AJAX], mas não está resolvendo meu problema específico.
Alguma ideia?