Установка сессии рельсов в посте ajax - PullRequest
3 голосов
/ 02 декабря 2010

Вроде странная проблема, надеюсь, кто-то может мне помочь.

Я хочу установить сеанс в моем контроллере rails, который я запускаю через пост jquery ajax.

Это обычные рельсыФорма, которую я отправляю через AJAX

 $.post($(this).attr('action'), $(this).serialize(), function(data){

 }, 'json');

, который попадает в ведущий контроллер

def create
    @lead = Lead.new(params[:lead])
    @lead.save!

    if @lead.save
      session[:lead] = "#{@lead.id}"
    end

  end

, однако сеанс, похоже, не устанавливается через вызов AJAX.

есть идеи на этот счет?

Ответы [ 2 ]

0 голосов
/ 17 мая 2011

Проблема может заключаться в том, что вы используете свой локальный хост, а не правильный домен. Я слышал, что некоторые браузеры игнорируют такие сеансы.

Другая проблема может заключаться в том, что вы не отправляете маркер аутентификации CSRF, используемый для остановки атак подделки,теперь это требование для запросов XHR по умолчанию, а не только для форм (хотя, возможно, этого не было с версией rails на момент вашего первоначального сообщения).

0 голосов
/ 03 декабря 2010

Вы действительно видели, что create вызывается в вашем контроллере (он появился в журнале)?

Кстати: вы дважды вызываете save (), но это не проблема (вызов save несколько раз возвращает true каждый раз, если сохранение прошло успешно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...