«объясняет, почему это работает.

я есть действие, вызванное запросом AJAX, сгенерированнымAjax.InPlaceEditor или жеInPlaceCollectionEditor нравится:

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...'

});

На другом конце действие содержит это:

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

После достижения любого из методов рендеринга сеанс истекает, и в следующий раз, когда пользователь отправляет запрос, Devise отправляет их для входа в систему на странице.

Хотя я освобождаю update_field от аутентификации (before_filter :authenticate_user!, :except => :update_field) сеанс все еще сбрасывается.

Я посмотрел на ответ на очень похожий вопрос вРазработать сеанс, немедленно истекающий при вызове .js [AJAX], но это не решает мою конкретную проблему.

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос